问题标签 [jsr310]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1598 浏览

java - JSR 310:时区之间的转换

尝试使用 JSR 310 在时区之间转换毫秒日期时间值。需要处理毫秒值,才能使用旧版 API。就我而言,它介于本地和 UTC/GMT 之间,但我希望它是完全相同的代码,而与所涉及的源时区和目标时区无关。这是我的小测试程序。它被配置为在最后一次本地 DST 更改前后的几个小时内进行迭代。输出是错误的,所以我认为 UTCtoLocalMillis 是错误的,但我的测试方法也可能存在问题。我所说的错误输出的意思是,对于我的时区,应该减去小时以获得 UTC,但代码实际上增加了小时。其次,夏令时的时间点也相差一小时。

我首先获取本地时区,然后将其重置为 UTC,这样 Date().toString() 在创建输出时不会执行任何转换。

我想要的是创建一个以毫秒为单位的方法,一个源 ZoneID 和一个目标 ZoneID,并使用新的 JSR 310 API 返回转换后的毫秒数。

0 投票
2 回答
2053 浏览

java - ThreeTen 和解析 Instant

我正在使用 ThreeTen 并尝试格式化 Instant。拆分它会更容易,但我很好奇,这应该工作吗?从我读过的所有内容中, Instant 应该是可解析的,并且具有模式的所有组件:

错误:org.threeten.bp.temporal.UnsupportedTemporalTypeException:不支持的字段:DayOfWeek

dd 是月份中的某一天,而不是 DayofWeek。可能被扔了一条红鲱鱼,但这似乎很奇怪。

0 投票
7 回答
376645 浏览

java - 如何将 LocalDate 格式化为字符串?

我有一个LocalDate名为 的变量date,当我打印它时显示 1988-05-05 我需要将其转换为 05.May 1988 打印。如何做到这一点?

0 投票
3 回答
45222 浏览

java - 从整数创建 LocalDate 对象

如果我已经将日期的月份、日期和年份作为整数,那么使用它们创建LocalDate对象的最佳方法是什么?我发现这篇文章String to LocalDate,但它以String日期的表示开头。

0 投票
1 回答
1040 浏览

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

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

它的主页说:

问题:

  1. 您对 ThreeTen的体验如何?有一些缺点吗?

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

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

  4. 现在迁移到 ThreeTen 并稍后迁移到 JSR-310是否值得- 还是应该等到可以使用 java 8,从而跳过 ThreeTen?

0 投票
3 回答
43621 浏览

java - 使用 Jackson JSR310 模块反序列化 LocalDateTime

我正在使用描述Jackson Datatype JSR310 页面的库,但我仍然很难让它工作。

我已经配置了以下bean:

当我调用我的 REST API 时,日期格式输出是yyyy-MM-dd'T'HH:ss.SSSSSS,例如2015-04-11T00:10:38.905847。这由我的 AngularJS 代码处理得很好。

当我想向 REST API 提交某些内容时,日期会发布为yyyy-MM-dd'T'HH:mm:ss.SSS'Z',例如2015-04-09T08:30:00.000Z

杰克逊最后一直在抱怨“Z”。如果我在LocalDateTimeDeserializer文档中查看它使用DateTimeFormatter.ISO_LOCAL_DATE_TIMEwhich 沸腾ISO_LOCAL_DATE'T'ISO_LOCAL_TIME并提到它没有覆盖区域。

所以我想我应该设置我正在创建DateFormat的:ObjectMapper

但这无济于事。我把它改成了简单的东西,yyyy-MM-dd但是序列化的日期仍然是以前的格式,反序列化也不受影响。

我在这里做错了什么才能让它发挥作用?据我所知,我的 JavaScript 代码中的日期格式是 ISO 8601 格式...

0 投票
1 回答
155 浏览

java - ThreeTen-Backport 实现与 JSR-310 的 backport?

注意:这不是Comparing ThreeTen backport to JSR-310的副本。我的问题更具体。

在我的公司,我试图让 DevOps 能够使用 ThreeTen-Backport 重构遗留代码(由于 WebLogic 10.3.6.0 的部署限制,我们无法从 Java 6 升级,也无法使用任何版本的JodaTime 超过 1.2.1 版)。

我可以在 ThreeTen-Backport 的 Github 页面上看到 DevOps 对此声明存在问题:

backport不是JSR-310 的实现,因为这需要跳过许多不必要的障碍。相反,这是一个简单的向后移植,旨在允许用户在 Java SE 6 和 7 上快速使用 JSR-310 API。

当他们问我“不是实现”是什么意思时,我需要能够向他们解释。但是,实现这个词的语义范围很广,我自己也不确定这到底是什么意思。

所以我的问题是,在这样的情况下,实施反向移植是什么意思?由于 JSR-310 是一个反向端口而不是一个实现,是否有一个我可以使用的反例,那就是其他东西的实现,就像 ThreeTen-Backport不是JSR-310 的实现一样?如果存在这样的东西,Java 6 的 JSR-310的实际实现会是什么样子,它与 ThreeTen-Backport 有何不同?

0 投票
2 回答
4344 浏览

java - jOOQ - 支持 JSR310

jOOQ 是否结合 PostgreSQL 提供对 JSR310 的支持?特别是,我正在尝试使用以下类:

  • java.time.Instant
  • java.time.LocalDate
  • java.time.LocalTime
  • java.time.LocalDateTime

我存储在以下数据类型中(根据http://www.postgresql.org/docs/9.1/static/datatype-datetime.html):

  • java.time.Instanttimestamp with timezone
  • java.time.LocalDatedate
  • java.time.LocalTimetime without timezone
  • java.time.LocalDateTimetimestamp without timezone

这些数据类型是否正确?

jOOQ 是否支持上述四个类(双向)之间java.sql.Timestamp的转换?java.sql.Datejava.sql.Time

0 投票
3 回答
6527 浏览

jackson - Java 8 DateTime 序列化和 Jackson JSR 310

我在 Spring Boot 应用程序中使用 Java 8 DateTime 和 Jackson jsr 310 支持。

我禁用 了SerializationFeature.WRITE_DATES_AS_TIMESTAMPS以强制杰克逊将 localDatetime 序列化为字符串而不是 int 数组。

但是当日期时间微秒或非秒为0结尾时,我发现了一个奇怪的格式问题。我认为序列化结果可能等于date.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME),但事实并非如此,格式方法省略了零。

完整的示例测试代码。

测试失败,日志调试打印

zonedDatelocalDate微秒以00结尾,但 offsetDate 不是。并且date.format也得到不同的结果,其中 micrseconds不以00结尾。

format、toString、json文本的打印结果

  1. 似乎toString结果应该是 Jackson 序列化中的期望结果,在上面的日志记录中,OffsetDateTime json 节点微秒文本应该以00结尾。
  2. 为什么格式方法结果省略了结尾00

完整的示例代码可以从我的 github.com 找到。

角-springmvc-sample-boot

ISODateTest

0 投票
3 回答
166546 浏览

java - Instant 和 LocalDateTime 有什么区别?

我知道:

  • Instant是用于计算的“技术”时间戳表示(纳秒)。
  • LocalDateTime是日期/时钟表示,包括人类的时区。

最后,IMO 都可以作为大多数应用程序用例的类型。例如:目前我正在运行一个批处理作业,我需要根据日期计算下一次运行,并且我正在努力寻找这两种类型之间的优缺点(除了 Instant 的纳秒精度优势和时区部分本地日期时间)。

您能否举出一些应用示例,其中只应使用 Instant 或 LocalDateTime?

编辑:小心误读 LocalDateTime 关于精度和时区的文档