问题标签 [java.time.instant]

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 回答
378 浏览

java - Java DateTimeFormatter 一年中的月份格式

我正在尝试将 Instant 转换为格式为“2021 年 7 月 10 日,晚上 10:00”的字符串。

它在我的机器上按预期工作,但在其他环境中显示为“10 7 2021, 10:00 PM”。

0 投票
2 回答
741 浏览

java - 如何使用 Instant Java 类解析与 UTC 有偏移的日期时间?

我正在尝试使用带有时区偏移的 Instant.parse() 解析日期时间。我阅读了文档,它说我必须使用 ISO-8601 来做到这一点。我阅读了维基百科的 ISO-8601 文章,并从那里复制了这个日期时间“2007-11-03T13:18:05-03:00”,并将它与 parse() 方法一起使用。该调用抛出异常,表示无法解析该参数。我不明白为什么会这样。有人可以帮我吗?

0 投票
0 回答
44 浏览

java - ZonedDateTime 到 Instant 在 Java 8 中是正确的,但在 Java 9+ 中是 1h

在 Java 8 中运行以下代码时,解析字符串“ 2021-03-26T23:43:03+01:00[Europe/London]”产生的 Instant 为“ 2021-03-26T23:43:03Z

(这 afaik 是正确的,因为 2021 年 DST 于 3 月 28 日开始生效,所以伦敦时间 26 日和 UCT 应该仍然匹配)

但是,当在 Java >=9 中运行相同的代码时,结果日期相差一小时:“2021-03-26T22:43:03Z”

这是一个错误,还是我在这里失踪了?我对 Java 比较陌生。

0 投票
0 回答
65 浏览

java - MariaDB 驱动程序不支持从 DB 读取 Instant,但支持写入

我知道 JDBC 4.2 驱动程序支持读取和写入 java.time 对象。我尝试使用 MariaDB 2.6 驱动程序存储和检索 Instant 对象。我正在使用 Apache Commons DB Utils 运行查询。

我可以很好地存储 Instant,但无法检索它们。这是驱动程序的错误还是我做错了什么?

存储和读取代码

TimeTest 是一个具有日期时间字段时间的表:

读取 Instant 时出错

0 投票
2 回答
198 浏览

java - 使用 java.time 将日期从“06/25/2021 10:26:33.0”格式解析为“2021-06-25T10:26:33.000-04:00”

为了使用junit进行比较,我必须转换日期。我从数据库中得到一个日期,即“ 06/25/2021 10:26:33.0 ”,我必须将其转换为“ 2021-06-25T10:26:33.000-04:00 ”,然后才能在断言中使用它。

我试图不在 java 中使用 SimpleDate,而是使用内置的 java.time。但是,我认为我并没有真正理解其中的所有内容。这是我一直在玩的代码片段。我已经尝试了很多事情,当解析发生时我总是得到一个错误。

在我看来,我认为我必须首先将日期转换为“可接受”格式,因为我觉得这种字符串格式 - “yyyy-MM-dd HH:mm:ss.S”不是 java.time可以处理。它给了我一个错误,例如“无法在索引 19 处解析文本”,然后可能在第二遍中将其转换为“2021-06-25T10:26:33.000-04:00”。

我已经在 SO 上查阅了几篇关于此的文章,但无法找到有助于转换自定义格式的内容。我知道“解析”和“格式”是必须在此处使用的 2 个 API 方法,但不知道如何去做。有人可以将我推向正确的方向吗?

0 投票
3 回答
115 浏览

java - 将java时间戳字符串转换为java时间戳对象

我有以下时间戳字符串"2021010112:12:12.10:00",我想将其转换为java.time.Instant.

解析字符串的问题DateTimeFormatter是由于最后 4 位数字之前没有时区符号。逻辑上它是yyyyMMddHH:mm:ss.并且10:00是时区偏移量,例如UTC+10:00,但问题是它没有符号。

如何将此字符串解析为Instant对象?

0 投票
1 回答
219 浏览

java - 与现有抽象类 Clock 相比,新接口 java.time.InstantSource 的主要目的是什么?

Java 17 中添加了一个新接口java.time.InstantSource。如果该接口的所有实现也是实现,那么该附加抽象的用例是Clock什么?

0 投票
3 回答
288 浏览

java - Java Instant.parse 无法验证日期

我有一个即时字段,并尝试使用以下方法验证该字段中的值:

Instant.parse("2021-09-29 09:35:07.531")

但是,它会引发错误:

java.time.format.DateTimeParseException:无法在索引 10 处解析文本“2021-09-29 09:35:07.531”。

那么,如何测试Instant字符串格式的给定日期是否为有效Instant日期?

我正在实现导入功能,我需要检查日期单元格。因此,日期通常以即时格式保存在 db 中,因此我需要检查单元格日期值是否是有效的即时日期。所以,如果有更合适的方法,我当然可以按照那个方法。

我不使用该值,我只需要检查日期是否为有效日期。

0 投票
3 回答
321 浏览

java - 使用 +0000 将字符串日期时间转换为即时

如何将作为字符串 2018-08-10T18:25:00.000+0000 传递的日期时间转换为 Instant?我尝试了以下方法,但没有成功。

0 投票
1 回答
189 浏览

java - 逗号后超过 6 位(纳秒)的整数

我有带有TIMESTAMP字段的 postgresql,它有带有日期和时间的 Instant。例如:2021-10-13T15:04:24.944921Z

如您所见,逗号后面有 6 位数字- 944921。但是如果我有更多的数字,例如:2021-10-13T07:14:47.791616921Z. 我怎样才能正确地Instant四舍五入2021-10-13T07:14:47.791617Z