将 ThreeTen 向后移植与 JSR-310 进行比较

Comparing ThreeTen backport to JSR-310

提问人:MRalwasser 提问时间:3/30/2015 最后编辑:assyliasMRalwasser 更新时间:6/29/2015 访问量:1140

问:

由于某些原因,我们现在不能使用 java 8 - 我们仍然停留在 java 7 上。
但是,我现在想使用新的,使用官方的向后移植 ThreeTen
JSR-310 date/time APIs

其主页指出:

The backport is NOT an implementation of JSR-310, as that would require 
jumping through lots of unnecessary hoops. Instead, this is a simple backport
intended to allow users to quickly use the JSR-310 API on Java SE 6 and 7.

问题:

  1. 你对ThreeTen有什么体验?有一些缺点吗?

  2. 与官方实现相比,这个项目的兼容性如何?JSR-310

  3. 从 ThreeTen 迁移到官方的 java 8 实现需要多少努力

  4. 现在迁移到 ThreeTen 和以后迁移到 JSR-310 是否值得 - 或者有人应该等到 java 8 可以使用,而不是跳过 ThreeTen?

java java-time JSR310 ThreeTenBP

评论

4赞 assylias 3/30/2015
你不会得到的一件事是来自 Date API 的 brdidge——例如,在 Java 8 中,你可以编写,但在 Java 7 中你不会有。对于您的用例来说,这可能是也可能不是问题。new Date(...).toInstant()
0赞 GhostCat 3/30/2015
我想问题 3/4 的答案很大程度上取决于您如何使用 Three Ten 向后移植 API。我猜:如果你小心的话;并尝试了解您行为的后果;第三季度的工作应该很少。
0赞 Joop Eggen 3/30/2015
使用或等待,或 - 第三种选择 - JODA 日期/时间。由于旧类最好被遗忘,日期/时间类可以进行单元测试,您可以在 Java 8 下进行向后移植 + 单元测试 + 单元测试。这比以后的重写更容易、更愉快。另一方面,这值得吗?
2赞 assylias 3/30/2015
@JoopEggen 如果他们计划在某个阶段转向新的 Java Time API,那么使用 threetenbp 将比使用 Joda 更容易过渡。
1赞 Kevin 9/26/2017
ThreeTen 在某些区域设置(例如韩国)上存在一些问题。它在启动时崩溃。如果您不在很多其他国家/地区跑步,这可能不是您关心的问题。现在,我正在寻找 ThreeTen 的替代品,因为我们的一些国际用户不断发生启动崩溃。如果他们更新了语言环境表,这可能会消失。

答:

7赞 JodaStephen 3/30/2015 #1

请参阅这篇博文

ThreeTen-Backport 是一个可靠的向后移植,由主 API 的等效代码组成(尽管对于非 ISO 日历系统来说不太好)。要转换为 Java 8,需要更改包名称,并将某些常量更改为方法引用。java.time

我不建议从 Joda-Time 迁移到 ThreeTen-Backport,但建议从 Joda-Time 迁移到 Java 8 。java.time

评论

0赞 IgorGanapolsky 7/14/2015
现在可以迁移到 java.time 吗?