将java.util.Date对象转换为新的JDK 8/JSR-310 的最佳方法是什么java.time.LocalDate?
Date input = new Date();
LocalDate date = ???
Run Code Online (Sandbox Code Playgroud) Java 8有一个全新的日期和时间API.此API中最有用的类之一是LocalDateTime,用于保存与时区无关的日期时间值.
java.util.Date为此目的,使用遗留类可能有数百万行代码.因此,当连接新旧代码时,需要在两者之间进行转换.由于似乎没有直接的方法来实现这一点,怎么办呢?
我想转换java.time.LocalDate成java.util.Date类型.因为我想将日期设置为JDateChooser.或者是否有支持java.time日期的日期选择器?
Java 8添加了一个新的java.time API来处理日期和时间(JSR 310).
我有日期和时间作为字符串(例如"2014-04-08 12:30").如何LocalDateTime从给定的字符串中获取实例?
在我完成LocalDateTime对象的使用之后:如何将LocalDateTime实例转换回具有与上面所示格式相同的字符串?
我知道有关于java.util.Date和Joda-Time的问题.但经过一番挖掘后,我找不到关于java.time API(Java 8中新增,JSR 310定义)和Joda-Time之间差异的线程.
我听说Java 8的java.time API比Joda-Time更清洁,可以做得更多.但我找不到比较两者的例子.
我想知道如果有一种方法,因为1970年1月1日(时期),以获得当前毫秒使用新的LocalDate,LocalTime或LocalDateTimeJava的8类.
已知的方法如下:
long currentMilliseconds = new Date().getTime();
Run Code Online (Sandbox Code Playgroud)
要么
long currentMilliseconds = System.currentTimeMillis();
Run Code Online (Sandbox Code Playgroud) 我知道有很多关于如何获得的问题,但我想要和使用新的Java 8 Date api的例子.我也知道JodaTime库,但我想要一种没有外部库的工作方式.
功能需要抱怨这些限制:
如何将Jackson JSON映射器与Java 8 LocalDateTime一起使用?
org.codehaus.jackson.map.JsonMappingException:无法从JSON String实例化类型[simple type,class java.time.LocalDateTime]的值; 没有单字符串构造函数/工厂方法(通过引用链:MyDTO ["field1"] - > SubDTO ["date"])
我正在尝试使用新的java 8 time-api和模式将Instant格式化为String:
Instant instant = ...;
String out = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(instant);
Run Code Online (Sandbox Code Playgroud)
使用上面的代码我得到一个异常,它抱怨一个不受支持的字段:
java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: YearOfEra
at java.time.Instant.getLong(Instant.java:608)
at java.time.format.DateTimePrintContext.getValue(DateTimePrintContext.java:298)
...
Run Code Online (Sandbox Code Playgroud) 我有一个外部API返回我的日期为longs,表示自Epoch以来的毫秒数.
使用旧式Java API,我只需用Date它构造一个
Date myDate = new Date(startDateLong)
Run Code Online (Sandbox Code Playgroud)
Java 8 LocalDate/ LocalDateTimeclasses中的等价物是什么?
我有兴趣将长度所代表的时间点转换为long当前本地时区.