如何将DateTime转换为Date

如何将Date转换为DateTime ,反之亦然?

例如

 Date dt = new Date(); 

现在我想把它转换为DateTime

 DateTime dtim = new DateTime(); 

现在我想将它转换为Date。

你正在谈论这个Joda TimeDateTime吗? 如果是这样,那就是

 dateTime.toDate() 

我想你通过Date.getTime()将它转换为UTC。 然后,在另一个对象上使用构造函数/ setter。

正如斯卡弗曼上面所说的那样

 dateTime.toDate() 

应该做的伎俩。 但请记住,如果dateTime对象的时区与用户的当前时区不同,则dateTime.toDate()将返回用户时区中的日期对象。 即

 DateTime newDate = new DateTime().toDateTime(DateTimeZone.forID("America/Los_Angeles")); System.out.println(newDate); System.out.println(newDate.toDate()); 

这将打印出来

2017-07-05T14:19:23.294-07:00

2017年7月5日星期三15:19:23 MDT 2017

因为我的系统时间是MDT

如果要将DateTime转换为Date而不丢失时区,请先将DateTime转换为Joda LocalDateTime。

 DateTime dateTimeUtc = new DateTime(); //because my default timezone is UTC DateTime dateTimeBerlin = dateTimeUtc.withZone(DateTimeZone.forID("Europe/Berlin")); Date convertedDate = dateTimeBerlin.toLocalDateTime().toDate(); 

您可以轻松使用toDate()函数,它将日期时间作为java.util.Date

 Date date = MydateTime.toDate(); 

转换到date

 dateTime.toDate() 

转换为DateTime

 new DateTime(new Date())