引用Clock文档(强调我的):
时钟的使用是可选的。所有关键日期时间类还有一个 now() 工厂方法,该方法使用默认时区中的系统时钟。这种抽象的主要目的是允许在需要时插入备用时钟。应用程序使用对象而不是静态方法来获取当前时间。这可以简化测试。
例如,Clock.fixed( Instant fixedInstant, ZoneId zone )始终将当前时刻报告为特定时刻,固定(不变)时间点。
我想需要一些读心或猜测才能回答你的问题,但无论如何让我尝试一下。据我所知,Clock在使用任何now带有Clock参数的方法时,了解时区都非常方便。Clock如果\xe2\x80\x99 无法提供时区,则以下方法都无法正常工作:
LocalDate.now(Clock)LocalDateTime.now(Clock)LocalTime.now(Clock)MonthDay.now(Clock)OffsetDateTime.now(Clock)OffsetTime.now(Clock)Year.now(Clock)YearMonth.now(Clock)ZonedDateTime.now(Clock)HijrahDate.now(Clock)JapaneseDate.now(Clock)MinguoDate.now(Clock)ThaiBuddhistDate.now(Clock)该列表可能不完整。仅Instant.now(Clock)\xe2\x80\x99t 不需要时区并忽略Clock.
是的,替代设计有Clock一种方法可以提供与本来有意义的zonedDateTime相同结果。ZonedDateTime.now(Clock)然而:想要开发一个类的人JewishDate永远无法将jewishDate方法插入到该类中Clock。利用现有的设计,他们可以JewishDate按照与现有日期和时间类完全相同的方式设计自己的类,包括方法JewishDate.now(Clock)。
| 归档时间: | 
 | 
| 查看次数: | 281 次 | 
| 最近记录: |