java - 为什么 java.time.Clock 有区域信息?

标签 java timezone java-time jsr310

为什么java.time.Clock有区域信息吗?从时钟你只能得到一个 Instant调用 instant() 时方法 - 这是一个没有区域信息的时间。

是让时钟中的区域可用的唯一目的,例如像这样创建一个 ZonedDateTime ?ZonedDateTime.ofInstant(clock().instant(), clock().getZone())
那么拥有一个方法是否有意义 zonedDateTime()在时钟课上?

最佳答案

备用时钟行为

引用 Clock 文档(重点是我的):

Use of a Clock is optional. All key date-time classes also have a now() factory method that uses the system clock in the default time zone. The primary purpose of this abstraction is to allow alternate clocks to be plugged in as and when required. Applications use an object to obtain the current time rather than a static method. This can simplify testing.



例如, Clock.fixed( Instant fixedInstant, ZoneId zone ) 始终将当前时刻报告为特定时刻,一个固定(不变)的时间点。

关于java - 为什么 java.time.Clock 有区域信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53517885/

相关文章:

javascript - Java Nashorn实例方法

timezone - 更改浏览器时区

java - java.time没有使用 jackson 正确反序列化

java - 如何使用Java查找一年中#周的所有周数

java - 一个spring应用可以有多少个BeanFactories?

java - 在监听器方法中使用 GC

android - 时区和夏令时

ruby-on-rails - Rails 没有应用夏令时

java - 使用 Jackson 将 Java8 LocalDateTime 序列化为 UTC 时间戳

java - 在程序甚至开始之前就出现NullPointerException珠?