I'm trying to parse a date with three Locales: UK, US, ENGLISH.
String s = "Mon Sep 12 00:02:16 BST 2022";
DateTimeFormatter formatter = null;
String pattern = "E MMM dd H:m:s z yyyy";
formatter = DateTimeFormatter.ofPattern(pattern).withLocale(Locale.UK);
System.out.println("UK: " + Instant.from(formatter.parse(s)));
formatter = DateTimeFormatter.ofPattern(pattern).withLocale(Locale.US);
System.out.println("US: " + Instant.from(formatter.parse(s)));
formatter = DateTimeFormatter.ofPattern(pattern).withLocale(Locale.ENGLISH);
System.out.println("EN: " + Instant.from(formatter.parse(s)));
Result:
UK: 2022-09-11T23:02:16Z
US: 2022-09-11T13:02:16Z
EN: 2022-09-11T13:02:16Z
UK is correct. Both US and ENGLISH are wrong. Why?
Edit : test was made on Windows 10. openjdk 11.