【发布时间】:2016-07-11 08:23:11
【问题描述】:
我目前有一个 Joda 日期解析器,它使用 DateTimeFormatterBuilder 和我可能收到的六种不同日期格式。
我正在迁移到 Java 8 的 Date 例程,但没有看到等效的例程。
如何使用 Java 8 Dates 做这样的事情?
DateTimeParser[] parsers = {
DateTimeFormat.forPattern( "yyyy/MM/dd HH:mm:ss.SSSSSS" ).getParser() ,
DateTimeFormat.forPattern( "yyyy-MM-dd HH:mm:ss" ).getParser() ,
DateTimeFormat.forPattern( "ddMMMyyyy:HH:mm:ss.SSS Z" ).getParser() ,
DateTimeFormat.forPattern( "ddMMMyyyy:HH:mm:ss.SSS" ).getParser() ,
DateTimeFormat.forPattern( "ddMMMyyyy:HH:mm:ss.SSSSSS" ).getParser() ,
DateTimeFormat.forPattern( "yyyy-MM-dd HH:mm:ss.SSS" ).getParser()
};
DateTimeFormatter dateTimeFormatterInput = new DateTimeFormatterBuilder()
.append( null, parsers ).toFormatter();
【问题讨论】:
-
您可能会观察到性能方面的严重下降 - 特别是如果您计划通过异常处理实现替换。根据我自己的测试,Joda-Time 更快。另请参阅JDK-issue。