2016-08-16 63 views
0

joda.time.DateTime.now().toDate()为什么java.time.LocalDateTime不提供toDate()方法?

为什么java.time.提供这样的方法? 将java.time.LocalDateTime转换为java.util.date的最佳方法是什么?

我知道我可以做如下,但它感觉不对。

java.time.LocalDateTime date; 
java.util.Date.from(date.atZone(ZoneId.systemDefault()).toInstant()); 

我这么问是因为一个java.util.Date在很多系统中仍然使用,像通过休眠Postgres数据库映射。

+2

A ['LocalDateTime'](https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html)不是这样的时间。这是一个无地区的日期(例如2016年5月12日13:45),不可能将它评估为距离没有时区的时代。因此,我认为,如果您需要“日期”,您的解决方案就是最好的。 A ['DateTime'](http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime.html)是一个完全不同的东西...... –

回答

5

java.time.* JSR-310软件包不包含任何对java.util.DateCalendar的引用。这将允许旧的类型在将来被弃用和删除。

在旧形式和新形式之间转换是可能的,如theseanswers中所见。将“本地”日期时间转换为“时间”总是非常棘手,而且过多的帮助方法可能会掩盖转换的重要细节。

相关问题