【问题标题】:Comparing ThreeTen backport to JSR-310将 ThreeTen 反向移植与 JSR-310 进行比较
【发布时间】: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.

问题:

  1. 您对 ThreeTen 有哪些经验?有什么缺点吗?

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

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

  4. 是否值得现在迁移到 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


【解决方案1】:

看到这个blog post

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

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

【讨论】:

  • 现在可以迁移到 java.time 吗?
猜你喜欢
  • 1970-01-01
  • 2018-01-09
  • 1970-01-01
  • 2012-05-03
  • 2021-12-29
  • 2017-08-05
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
相关资源
最近更新 更多