当前位置: 首页 > 知识库问答 >
问题:

Java8,为什么不是ZonedTime类?

子车鸿才
2023-03-14

我发现Java 8没有与ZonedDateTime等价的功能,而是只与时间(ZonedTime类或类似的东西)一起工作。我知道他们包括OffsetTime类,但它只存储偏移量。

将时区与日期和时间一起存储,而不仅仅是存储偏移量,有助于更轻松地处理夏令时。

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

共有1个答案

沈弘文
2023-03-14

引入由本地时间和时区(而不是简单的偏移量)组成的类ZonedTime将是一个严重的错误。

建议的类型不包含日期。但是,如果没有日期,就不可能评估实时时区偏移以将本地时间映射到任何合理的全球时间。考虑到任何夏时制方面,你必须有一个日期和时间。

 类似资料:
  • 如果我编写了ToIntFunction接口,我希望在接口中编码这样一个事实,即它只是一个返回原始int的函数,如下所示: 我想知道,Java8 API设计者选择将原始的替代方案与函数完全分离,是不是有一个令人信服的原因?是否有证据显示他们曾考虑这样做,并决定不这样做?我想类似的问题至少也会出现在其他一些“特殊”功能接口上,比如Consumer(可能是function )和Supplier(func

  • 由于这在开发者社区中是一个非常有争议的话题,所以随着我们更深入的理解并结合收到的反馈,我们将不断更新这篇博客。我也想推出一些限定词,所以大家都明白我们来自哪里。 我们的公司由我的联合创始人和首席技术官,瑞恩·坎贝尔领导,一位拥有18年的经验的软件架构师,过去10年在大型企业。 当我们决定使用Angular 2时,他已经熟悉Angular 1了。但是,在决定使用Angular之前,我们还在React

  • 虽然有些人曾经问过这个问题,但那是在Java8发布之前。 以前,静态成员是不允许的,因为实现细节不能在接口中定义。这也是为什么任何东西都不应该是私有的,因为接口的实现者需要提供实现细节。 Java8改变了这种情况,不是吗?默认方法定义实现细节,静态方法也是如此。那么,为什么仍然不允许这样做呢?

  • Java14不是LTS。 考虑到6个月版本的新发布系列,8个和11个是LTS,Java14不应该是下一个LTS版本吗? 还是纯粹基于Java架构师来决定他们选择哪一个作为LTS? 我确实在网上搜索了,但找不到答案。

  • 如果我运行deldeldel(“adel”),它会返回一个,但是,adel的长度是4,这意味着最后一个字符串索引是3,为什么str.substring(4,str.length()没有超出范围?

  • Vue3 的源码使用 TypeScript 全部重构,为什么还叫做Vue.js,而不是Vue.ts?