为什么使用区域偏移格式化 LocalDateTime?
Why LocalDateTime formatted with zone offset?
考虑代码:
public static void main(String[] args) {
System.out.println(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH")));
}
输出为 2022-05-04-17
而 UTC 时间为 2022-05-04-10
。文档说 LocalDateTime
没有区域偏移 - 那么为什么有 7 小时轮班? (我当地的时区是 +7UTC
)
您调用了 LocalDateTime.now()
,即 documented 作为(强调我的):
Obtains the current date-time from the system clock in the default time-zone.
This will query the system clock in the default time-zone to obtain the current date-time.
返回的 LocalDateTime
不“知道”UTC 偏移量,但它已经应用于确定值。
如果要获取当前UTC时间,可以使用LocalDateTime.now(ZoneOffset.UTC)
。 (尽管在这种情况下 LocalDateTime
可能不是最合适的表示 - 我们需要更多地了解您使用它的目的。)
考虑代码:
public static void main(String[] args) {
System.out.println(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH")));
}
输出为 2022-05-04-17
而 UTC 时间为 2022-05-04-10
。文档说 LocalDateTime
没有区域偏移 - 那么为什么有 7 小时轮班? (我当地的时区是 +7UTC
)
您调用了 LocalDateTime.now()
,即 documented 作为(强调我的):
Obtains the current date-time from the system clock in the default time-zone.
This will query the system clock in the default time-zone to obtain the current date-time.
返回的 LocalDateTime
不“知道”UTC 偏移量,但它已经应用于确定值。
如果要获取当前UTC时间,可以使用LocalDateTime.now(ZoneOffset.UTC)
。 (尽管在这种情况下 LocalDateTime
可能不是最合适的表示 - 我们需要更多地了解您使用它的目的。)