Java 8,为什么不是ZonedTime类?

Jua*_*Lhc 10 time timezone datetime date java-8

我发现Java 8没有ZonedDateTime的等价物,只能用于Time(ZonedTime类或类似的东西).我知道它们包含了OffsetTime类,但它只存储了偏移量.

存储时区以及日期和时间,而不是仅存储偏移量,有助于更轻松地处理夏令时.

我不是要你给我替代品,我知道有很多方法; 我只是想知道为什么不包括这样的课程,这是一个设计问题吗?或者他们发现它是多余的?

Men*_*ild 14

引入一个ZonedTimeLocalTime时区组成的类(而不是简单的偏移量)将是一个严重的错误.

建议的类型不包含日期.但是如果没有日期,就无法评估实际时区偏移量来将当地时间映射到任何合理的全球时间.考虑到任何夏令时,您必须拥有日期和时间.

  • -1 我觉得这个答案没有说服力。简单地说您无法将其本身映射到正确的日期并不意味着这种类型没有用例。我支持一个应用程序,其中事件必须每天在某个位置的给定时间发生(即伦敦每天下午 1 点)。纽约下午 5 点是金融系统中广泛使用的概念。ZonedTime 是此问题的逻辑类型 - 可以在函数评估时提供日期。 (7认同)
  • 我之前实际上已经考虑过这一点,但我认为在某些情况下它会很有用。不管怎样,谢谢你的回复。例如,我会用它来存储学校时间表的时间;我不会执行日期很重要的转换,我只想知道课程的开始和结束时间,以便向世界其他地区的用户显示。 (2认同)
  • @Meno当然,有很多方法可以解决这个问题,但这并不会使这种类型成为“严重错误”。 (2认同)