问题标签 [java-time]

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 投票
7 回答
312723 浏览

java - 将 Instant 格式化为 String 时出现 UnsupportedTemporalTypeException

我正在尝试使用新的 Java 8 日期和时间 API 和以下模式将 Instant 格式化为字符串:

使用上面的代码,我得到一个抱怨不支持的字段的异常:

0 投票
4 回答
87087 浏览

java - Java8 java.util.Date 转换为 java.time.ZonedDateTime

我在尝试转换java.util.Datejava.time.LocalDate.

代码如下:

我使用ZonedDateTime课程的方式有问题吗?

根据文档,这应该将java.util.Date对象转换为ZonedDateTime. 上面的日期格式是标准日期吗?

我必须回退到 Joda 时间吗?

如果有人可以提供一些建议,那就太好了。

0 投票
3 回答
2798 浏览

java - Instant.getEpochSecond 与 Instant.toEpochMilli 背后的基本原理

有人可以解释Instant.getEpochSecondInstant.toEpochMilli命名背后的理由吗?我能想到的唯一原因是将瞬间的内部表示为相对于纪元的秒和相对于该秒的纳秒,而毫秒是根据这两个值计算的。

但是你为什么要让这样的实现细节泄漏到新的 API 中呢?

0 投票
1 回答
4448 浏览

java - jooq 转换器:从 java.sql.Date 到 java.time.LocalDate

我试图写一个Converter<java.sql.Date, java.time.LocalDate>,但我无法让它与所有时区设置一起工作。

想法:

  • 如果客户端代码有LocalDate2014 年 8 月 20 日,并将其保存到数据库中,则无论客户端时区是什么,它都应在数据库中显示为 2014 年 8 月 20 日。
  • 如果数据库包含 2014 年 8 月 20 日的日期,则客户端应收到 2014 年 8 月 20 日的 LocalDate,无论客户端时区是什么。

我的测试:

我的转换器:

我尝试了各种变体,但都没有奏效......

0 投票
6 回答
32342 浏览

java - 如何在 java 8 中从 LocalTime 中删除毫秒

使用 java.time 框架,我想以格式打印时间hh:mm:ss,但以格式LocalTime.now()给出时间hh:mm:ss,nnn。我尝试使用DateTimeFormatter

结果:

如何从时间中删除毫秒?

0 投票
1 回答
14180 浏览

java - 如何使用 Java 8 中的新日期时间 API 获取当前时间?

在 Java 8 之前,通用方法是CalendarAPI:

如何获取当前时间,但使用Java 8中提供的新日期时间 API

0 投票
3 回答
32277 浏览

datetime - 使用 Java 8 将分钟数逼近上限

所以我很幸运能够使用 Java 8 和新的时间 APi,但我没有看到任何舍入函数......

基本上如果时间...

这似乎没问题,但对吗?

0 投票
2 回答
153337 浏览

java - 在 Java8 中使用时区格式化 LocalDateTime

我有这个简单的代码:

然后我会得到以下异常:

如何解决这个问题?

0 投票
4 回答
54287 浏览

java - Java 8 - ZonedDateTime 的 DateTimeFormatter 和 ISO_INSTANT 问题

所以我希望这段代码可以在新的 Java 8 日期/时间包下工作,因为它所做的只是使用相同的内置 DateTimeFormatter 实例 (ISO_INSTANT) 将给定的 ZonedDateTime 转换为字符串并返回:

但显然它没有:

我已经看过这个条目,但它对我没有帮助,因为需要 ZonedDateTime 对象而不是本地对象,还因为我已经安装了 8u20:Unable to get ZonedDateTime from TemporalAccessor using DateTimeFormatter and ZonedDateTime in Java 8

有人知道这里发生了什么吗?

0 投票
4 回答
16486 浏览

java - 使用 Java 8 java.time api 解析 ISO 时间戳(仅限标准版)

在示例中,我无法从字符串中获取从纪元开始的毫秒数。到目前为止,我已经尝试了这三种不同的方法,示例显示了最新的尝试。似乎总是归结为TemporalAccessor不支持ChronoField。如果我可以成功构造 Instant 的实例,我可以使用toEpochMilli()

请给出简洁的答案(不要从头开始构建格式化程序)并仅使用 java 8 标准发行版(我可以使用 Joda 来完成,但希望避免依赖)。

编辑:上面代码中的 Instant.from 抛出:java.time.DateTimeException: Unable to obtain Instant from TemporalAccessor: {OffsetSeconds=-18000},ISO resolved to 2014-08-16T05:03:45 of type java.time.format.Parsed