java-time相关内容
Duration 新 JSR 310 日期 API 中的类(java.time 包)在 Java 8 及更高版本中可用,javadoc 说: 这个类以秒和纳秒.可以使用其他基于持续时间的单位访问它,例如作为分钟和小时.此外,可以使用 DAYS 单位并将其视为完全等于 24 小时,从而忽略夏令时效应. 那么,为什么下面的代码会崩溃? 持续时间 = Duration.ofSeconds(
..
如何将 LocalDate 转换为 java.sql.Date? 尝试: Record r = new Record();LocalDate 日期 = 新日期(1967, 06, 22);r.setDateOfBirth(new Date(date)); 这失败了(不会编译),我能找到的只有 Joda 时间. 我使用的是 Java 8 解决方案 答案很简单; import
..
DateTimeFormatter 类文档为年份和 y 年代定义了单独的符号 u:https://docs.oracle.com/javase/8/docs/api/java/time/格式/DateTimeFormatter.html#patterns 年份和年代有什么区别? 解决方案 答案在 IsoChronology 时代 - 有两个时代,“当前时代"(CE) 和“当前时
..
我正在将一个项目从 Joda-Time 转换为 java8 的本机时间库,但遇到了障碍. 我一直无法找到 Duration 的格式化程序.我想要一个自定义字符串格式,例如 HHH+MM,其中 75 小时 15 分钟的持续时间将格式化为 "75+15". 通过转换为句点并使用PeriodFormatter,使用Joda-Time 很容易做到这一点,但是我在Java8 中找不到这种类型的类
..
Java 8 中新的日期时间 API 的特性之一应该是纳秒精度.但是,当我像这样将当前日期时间打印到控制台时 DateTimeFormatter 格式化程序 = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss,nnnnnnnnnZ");System.out.println(OffsetDateTime.now().format(formatt
..
在我的测试用例中,我需要测试时间敏感的方法,在该方法中我们使用的是 java 8 类 LocalDate,它不是 Joda. 我可以做些什么来改变时间,当我运行测试时 解决方案 在您的代码中,将 LocalDate.now() 替换为 LocalDate.now(clock);. 然后您可以传递 Clock.systemDefaultZone() 用于生产和 一个固定时钟用于测
..
我最近转向 Java 8,希望能够更轻松地处理本地和分区时间. 但是,在我看来,解析简单日期时遇到了一个简单的问题. public static ZonedDateTime convertirAFecha(String fecha) throws Exception {DateTimeFormatter 格式化程序 = DateTimeFormatter.ofPattern(Constan
..
我正在寻找新的JDK8 java.time 类.我浏览了 FasterXML GitHub 项目列表,但目前没有找到. 据我所知,Jackson 仍在针对 JDK6 进行编译,因此不能直接使用这些类,并且必须将其构建为单独的模块,正如 Joda 所要求的那样. 我不介意开始这个项目,但我想看看是否还有其他工作正在进行中. 解决方案 如前所述,Jackson-数据类型-JSR31
..
无论如何都可以获得 java.time(Java 8 中的新功能)与 ResultSet 兼容的时间类? 我知道你可以使用 ResultSet 的 getDate 或 getTimestamp 但这些方法返回 java.sql.Date/java.sql.Timestamp 现在已弃用的对象,因此使用它们来创建 ZonedDateTime 或类似的对象似乎是不好的做法. 解决方案 大
..
我知道您可以使用 DateUtils.formatElapsedTime(seconds) 将秒数转换为 HH:MM 格式的 String:SS.但是是否有任何实用函数可以让我执行相同的转换但没有秒? 例如,我想将 3665 秒转换为 1:01,即使它正好是 1:01:05.换句话说,只需删除秒部分. 强烈更喜欢一个指向效用函数(如果存在的话)的答案,而不是一堆家用算法. 解决方
..
如何从 LocalDateTime 或 LocalDate 的实例中提取到 Long 的纪元值?我试过了以下,但它给了我其他结果: LocalDateTime time = LocalDateTime.parse("04.02.2014 19:51:01", DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"));System.out.printl
..
Jackson 序列化 java.time.Instant 并默认启用 WRITE_DATE_TIMESTAMPS_AS_NANOOSECONDS. 它像这样产生JSON { "timestamp":1421261297.356000000 } 我想知道是否有办法去掉末尾的零.我想要类似的东西: { "timestamp":1421261297.356 } 我试过了: mapper
..
检索 java.sql.Timestamp 时通过 JDBC 4.1 或更早版本从数据库中获取/转换为 java.time 对象? Postgres 的开源 JDBC 驱动程序均不符合 JDBC 4.2,因此我正在寻找一种将 java.time 与 JDBC 4.1 结合使用的方法. 解决方案 旧类的新方法 通过在 Java 8 及更高版本中使用驱动程序,您应该会自动在您的 j
..
我一直在 Java EE 应用程序中使用 Joda Time 进行日期时间操作,其中关联客户端提交的日期时间字符串表示已使用以下转换例程进行转换,然后再将其提交到数据库,即在JSF 转换器中的 getAsObject() 方法. org.joda.time.format.DateTimeFormatter formatter = org.joda.time.format.DateTimeForm
..
JPA 和 Hibernate 目前都不支持 JDK8 中 JSR-310 带来的新日期/时间类(JPA ticket、休眠票).尽管如此,我还是想使用 JDK8 日期/时间类进行编码,因为它们最终设计得很好.特别是,我对 java.time.Instant 感兴趣,而不是完全支持所有 java.time.* 类型,因为我所有的实体都将使用这个特定的类(或者我现在认为,至少:-) 一种选择是
..
如果我使用像 d/M/yy 这样的模式来创建 Java 8 DateTimeFormatter(例如使用 DateTimeFormatter.ofPattern(pattern);(我只会使用用于解析,而不是格式化),它将所有两个字母的年份解释为 20xx,例如解析像 13/5/99 这样的字符串被解释为 2099-05-13,在我的情况下这是错误的(它应该是在 1999 年). 在我的应用
..
鉴于今天的时间,例如下午 2:24,我如何将它舍入到下午 2:30? 同样,如果时间是下午 2 点 17 分,我如何将它舍入到下午 2 点 15 分? 解决方案 四舍五入 您需要使用模数来截断一刻钟: DatewhateverDateYouWant = new Date();日历日历 = Calendar.getInstance();calendar.setTime(what
..
Joda Time 有一个很好的 DateTimeUtils.setCurrentMillisFixed() 模拟时间. 在测试中非常实用. Java 8 的 java 中是否有等价物.time API? 解决方案 最接近的是 Clock 对象.您可以使用任何时间(或从系统当前时间)创建时钟对象.所有 date.time 对象都重载了 now 方法,这些方法采用时钟对象代替当前
..
我有一个外部 API,它以 long 的形式返回日期,表示为自纪元开始以来的毫秒数. 使用旧式 Java API,我只需使用 从中构造一个 Date Date myDate = new Date(startDateLong) Java 8 的 LocalDate/LocalDateTime 类中的等价物是什么? 我有兴趣将 long 表示的时间点转换为当前本地时区中的 Local
..
我想将字符串日期时间转换为格式化字符串.例如“2018-12-14T09:55:00"到“14.12.2018 09:55"作为字符串=> Textview.text 我如何使用 kotlin 或 java for android 执行此操作? 解决方案 解析为 LocalDateTime 然后格式化: LocalDateTime localDateTime = LocalDate
..