Parsing DateTime with different Locales gives two different Instants

Viewed 66

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.

0 Answers
Related