【发布时间】:2015-03-30 12:47:05
【问题描述】:
由于某些原因,我们现在不能使用 java 8 - 我们仍然停留在 java 7。
但是,我现在想使用新的JSR-310 date/time APIs,使用official backport ThreeTen。
它的主页上写着:
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.
问题:
您对 ThreeTen 有哪些经验?有什么缺点吗?
与官方的
JSR-310实现相比,该项目的兼容性如何?从 ThreeTen迁移 到 官方 java 8 实现需要多少努力?
是否值得现在迁移到 ThreeTen,然后再迁移到 JSR-310 - 还是应该等到可以使用 java 8,从而跳过 ThreeTen?
【问题讨论】:
-
你不会得到的东西是来自 Date API 的桥 - 例如在 Java 8 中你可以写
new Date(...).toInstant()但你不会在 Java 7 中拥有它。这可能会也可能不会成为您的用例的问题。 -
我猜问题 3/4 的答案很大程度上取决于您如何使用三个十后端口 API。我猜:如果你小心点;并尝试了解您的行为的后果;第三季度的努力应该是最小的。
-
使用或等待,或者 - 第三种选择 - JODA 日期/时间。由于最好忘记旧类,因此可以对日期/时间类进行单元测试,您可以选择 Java 8 下的向后移植 + 单元测试 + 单元测试。这比以后重写更容易,更愉快。另一方面是否值得?
-
@JoopEggen 如果他们计划在某个阶段继续使用新的 Java Time API,使用threetenbp 将比使用 Joda 更容易过渡。
-
ThreeTen 在某些地区(例如韩国)存在一些问题。它在启动时崩溃。如果您不在许多其他国家/地区跑步,您可能不会担心。现在,由于我们的一些国际用户不断发生启动崩溃,我正在寻找 ThreeTen 的替代品。如果他们更新了语言环境表,这可能会消失。
标签: java java-time jsr310 threetenbp