问题标签 [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.
java - 将 Instant 格式化为 String 时出现 UnsupportedTemporalTypeException
我正在尝试使用新的 Java 8 日期和时间 API 和以下模式将 Instant 格式化为字符串:
使用上面的代码,我得到一个抱怨不支持的字段的异常:
java - Java8 java.util.Date 转换为 java.time.ZonedDateTime
我在尝试转换java.util.Date
为java.time.LocalDate
.
代码如下:
我使用ZonedDateTime
课程的方式有问题吗?
根据文档,这应该将java.util.Date
对象转换为ZonedDateTime
. 上面的日期格式是标准日期吗?
我必须回退到 Joda 时间吗?
如果有人可以提供一些建议,那就太好了。
java - Instant.getEpochSecond 与 Instant.toEpochMilli 背后的基本原理
有人可以解释Instant.getEpochSecond与Instant.toEpochMilli命名背后的理由吗?我能想到的唯一原因是将瞬间的内部表示为相对于纪元的秒和相对于该秒的纳秒,而毫秒是根据这两个值计算的。
但是你为什么要让这样的实现细节泄漏到新的 API 中呢?
java - jooq 转换器:从 java.sql.Date 到 java.time.LocalDate
我试图写一个Converter<java.sql.Date, java.time.LocalDate>
,但我无法让它与所有时区设置一起工作。
想法:
- 如果客户端代码有
LocalDate
2014 年 8 月 20 日,并将其保存到数据库中,则无论客户端时区是什么,它都应在数据库中显示为 2014 年 8 月 20 日。 - 如果数据库包含 2014 年 8 月 20 日的日期,则客户端应收到 2014 年 8 月 20 日的 LocalDate,无论客户端时区是什么。
我的测试:
我的转换器:
我尝试了各种变体,但都没有奏效......
java - 如何在 java 8 中从 LocalTime 中删除毫秒
使用 java.time 框架,我想以格式打印时间hh:mm:ss
,但以格式LocalTime.now()
给出时间hh:mm:ss,nnn
。我尝试使用DateTimeFormatter
:
结果:
如何从时间中删除毫秒?
java - 如何使用 Java 8 中的新日期时间 API 获取当前时间?
在 Java 8 之前,通用方法是Calendar
API:
如何获取当前时间,但使用Java 8中提供的新日期时间 API?
datetime - 使用 Java 8 将分钟数逼近上限
所以我很幸运能够使用 Java 8 和新的时间 APi,但我没有看到任何舍入函数......
基本上如果时间...
这似乎没问题,但对吗?
java - 在 Java8 中使用时区格式化 LocalDateTime
我有这个简单的代码:
然后我会得到以下异常:
如何解决这个问题?
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
有人知道这里发生了什么吗?
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