小编ali*_*aab的帖子

时区 BST 偏移量错误

无法理解为什么 BST(UTC 偏移:UTC +1)在以下代码中得到偏移 +11。我期望+1。

final String lastUpdated = "Mon Sep 27 18:29:00 BST 2021";
final DateTimeFormatter LAST_UPDATED_FORMATTER = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z y").withLocale(Locale.UK);
ZonedDateTime zonedDateTime = ZonedDateTime.parse(lastUpdated, LAST_UPDATED_FORMATTER);
LocalDateTime localDateTime = zonedDateTime.withZoneSameInstant(ZoneId.of("UTC")).toLocalDateTime();
System.out.println(zonedDateTime.getOffset()); // +11:00; expected +1
System.out.println(localDateTime.toString());
Run Code Online (Sandbox Code Playgroud)

控制台输出:

+11:00
2021-09-27T07:29
Run Code Online (Sandbox Code Playgroud)

一旦使用 UTC 日期,一切就清楚了:

final String lastUpdated = "Mon Sep 27 18:29:00 BST 2021";
Run Code Online (Sandbox Code Playgroud)

java timezone datetime-parsing java-time zoneddatetime

3
推荐指数
1
解决办法
226
查看次数