java-time相关内容

为什么我不能在 java.time 中获得以分钟或小时为单位的持续时间?

Duration 新 JSR 310 日期 API 中的类(java.time 包)在 Java 8 及更高版本中可用,javadoc 说: 这个类以秒和纳秒.可以使用其他基于持续时间的单位访问它,例如作为分钟和小时.此外,可以使用 DAYS 单位并将其视为完全等于 24 小时,从而忽略夏令时效应. 那么,为什么下面的代码会崩溃? 持续时间 = Duration.ofSeconds( ..
发布时间:2021-12-28 08:52:07 Java开发

year 和 year-of-era 和有什么不一样?

DateTimeFormatter 类文档为年份和 y 年代定义了单独的符号 u:https://docs.oracle.com/javase/8/docs/api/java/time/格式/DateTimeFormatter.html#patterns 年份和年代有什么区别? 解决方案 答案在 IsoChronology 时代 - 有两个时代,“当前时代"(CE) 和“当前时 ..
发布时间:2021-12-28 08:49:15 其他开发

在 Java 8/jsr310 中格式化持续时间

我正在将一个项目从 Joda-Time 转换为 java8 的本机时间库,但遇到了障碍. 我一直无法找到 Duration 的格式化程序.我想要一个自定义字符串格式,例如 HHH+MM,其中 75 小时 15 分钟的持续时间将格式化为 "75+15". 通过转换为句点并使用PeriodFormatter,使用Joda-Time 很容易做到这一点,但是我在Java8 中找不到这种类型的类 ..
发布时间:2021-12-28 08:47:49 Java开发

我如何模拟 java.time.LocalDate.now()

在我的测试用例中,我需要测试时间敏感的方法,在该方法中我们使用的是 java 8 类 LocalDate,它不是 Joda. 我可以做些什么来改变时间,当我运行测试时 解决方案 在您的代码中,将 LocalDate.now() 替换为 LocalDate.now(clock);. 然后您可以传递 Clock.systemDefaultZone() 用于生产和 一个固定时钟用于测 ..
发布时间:2021-12-28 08:44:34 Java开发

无法使用 Java 8 中的 DateTimeFormatter 和 ZonedDateTime 从 TemporalAccessor 获取 ZonedDateTime

我最近转向 Java 8,希望能够更轻松地处理本地和分区时间. 但是,在我看来,解析简单日期时遇到了一个简单的问题. public static ZonedDateTime convertirAFecha(String fecha) throws Exception {DateTimeFormatter 格式化程序 = DateTimeFormatter.ofPattern(Constan ..
发布时间:2021-12-28 08:43:43 Java开发

JDK8 java.time 是否有 jackson 数据类型模块?

我正在寻找新的JDK8 java.time 类.我浏览了 FasterXML GitHub 项目列表,但目前没有找到. 据我所知,Jackson 仍在针对 JDK6 进行编译,因此不能直接使用这些类,并且必须将其构建为单独的模块,正如 Joda 所要求的那样. 我不介意开始这个项目,但我想看看是否还有其他工作正在进行中. 解决方案 如前所述,Jackson-数据类型-JSR31 ..
发布时间:2021-12-28 08:39:27 其他开发

从 ResultSet 获取日期以用于 java.time 类

无论如何都可以获得 java.time(Java 8 中的新功能)与 ResultSet 兼容的时间类? 我知道你可以使用 ResultSet 的 getDate 或 getTimestamp 但这些方法返回 java.sql.Date/java.sql.Timestamp 现在已弃用的对象,因此使用它们来创建 ZonedDateTime 或类似的对象似乎是不好的做法. 解决方案 大 ..
发布时间:2021-12-28 08:36:44 其他开发

在 Java 中将秒数转换为 HH:MM(不含秒)

我知道您可以使用 DateUtils.formatElapsedTime(seconds) 将秒数转换为 HH:MM 格式的 String:SS.但是是否有任何实用函数可以让我执行相同的转换但没有秒? 例如,我想将 3665 秒转换为 1:01,即使它正好是 1:01:05.换句话说,只需删除秒部分. 强烈更喜欢一个指向效用函数(如果存在的话)的答案,而不是一堆家用算法. 解决方 ..
发布时间:2021-12-23 19:39:30 Java开发

如何在没有 JDBC 4.2 驱动程序的情况下从 java.sql.Timestamp 获取 java.time 对象?

检索 java.sql.Timestamp 时通过 JDBC 4.1 或更早版本从数据库中获取/转换为 java.time 对象? Postgres 的开源 JDBC 驱动程序均不符合 JDBC 4.2,因此我正在寻找一种将 java.time 与 JDBC 4.1 结合使用的方法. 解决方案 旧类的新方法 通过在 Java 8 及更高版本中使用驱动程序,您应该会自动在您的 j ..
发布时间:2021-12-21 19:30:06 Java开发

如何在 p:calendar 中使用 java.time.ZonedDateTime/LocalDateTime

我一直在 Java EE 应用程序中使用 Joda Time 进行日期时间操作,其中关联客户端提交的日期时间字符串表示已使用以下转换例程进行转换,然后再将其提交到数据库,即在JSF 转换器中的 getAsObject() 方法. org.joda.time.format.DateTimeFormatter formatter = org.joda.time.format.DateTimeForm ..
发布时间:2021-12-20 15:22:21 其他开发

使用 JPA2/Hibernate 持久化 java.time.Instant (JDK8)

JPA 和 Hibernate 目前都不支持 JDK8 中 JSR-310 带来的新日期/时间类(JPA ticket、休眠票).尽管如此,我还是想使用 JDK8 日期/时间类进行编码,因为它们最终设计得很好.特别是,我对 java.time.Instant 感兴趣,而不是完全支持所有 java.time.* 类型,因为我所有的实体都将使用这个特定的类(或者我现在认为,至少:-) 一种选择是 ..
发布时间:2021-12-14 18:23:07 其他开发

如何使用 Java 8 DateTimeFormatter 更改用于解析两个字母年份的基准日期?

如果我使用像 d/M/yy 这样的模式来创建 Java 8 DateTimeFormatter(例如使用 DateTimeFormatter.ofPattern(pattern);(我只会使用用于解析,而不是格式化),它将所有两个字母的年份解释为 20xx,例如解析像 13/5/99 这样的字符串被解释为 2099-05-13,在我的情况下这是错误的(它应该是在 1999 年). 在我的应用 ..
发布时间:2021-12-13 00:07:03 Java开发

Java 8 的 java.time API 中的模拟时间

Joda Time 有一个很好的 DateTimeUtils.setCurrentMillisFixed() 模拟时间. 在测试中非常实用. Java 8 的 java 中是否有等价物.time API? 解决方案 最接近的是 Clock 对象.您可以使用任何时间(或从系统当前时间)创建时钟对象.所有 date.time 对象都重载了 now 方法,这些方法采用时钟对象代替当前 ..
发布时间:2021-12-11 08:30:33 Java开发

如何从以毫秒为单位的长纪元时间创建 Java 8 LocalDate?

我有一个外部 API,它以 long 的形式返回日期,表示为自纪元开始以来的毫秒数. 使用旧式 Java API,我只需使用 从中构造一个 Date Date myDate = new Date(startDateLong) Java 8 的 LocalDate/LocalDateTime 类中的等价物是什么? 我有兴趣将 long 表示的时间点转换为当前本地时区中的 Local ..
发布时间:2021-12-11 08:24:30 Java开发