如何将DateTime转换为Date
如何将Date
转换为DateTime
,反之亦然?
例如
Date dt = new Date();
现在我想把它转换为DateTime
。
也
DateTime dtim = new DateTime();
现在我想将它转换为Date。
你正在谈论这个Joda Time
的DateTime
吗? 如果是这样,那就是
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())