gpt4 book ai didi

java - 时区 BST 的偏移量错误

转载 作者:行者123 更新时间:2023-12-04 16:23:11 25 4
gpt4 key购买 nike

无法理解为什么 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());

控制台输出:

+11:00
2021-09-27T07:29

只要是 UTC 日期,一切就清楚了:

final String lastUpdated = "Mon Sep 27 18:29:00 BST 2021";

最佳答案

恐怕这就是使用模棱两可的缩写所得到的结果。 BST 可能有不同的含义,如图所示 here .

在这种情况下,它似乎被解释为布干维尔标准时间,实际上是 UTC+11。

(即使在英国,BST 也并不总是意味着英国夏令时。在 1968 年到 1971 年间,BST 的意思是“英国标准时间”,尽管它仍然是 GMT+1。)

对于格式化,使用缩写“有点好”,但出于解析目的,应尽可能避免使用。如果您收到的数据知道会使用它,并且知道它的含义,那么最好在解析之前在文本中替换它。

关于java - 时区 BST 的偏移量错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69538053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com