我怎样才能转换Date
成DateTime
反之亦然?
例如
Date dt = new Date();
现在我想将其转换为DateTime
.
还
DateTime dtim = new DateTime();
现在我想将其转换为日期。
你说Joda Time
的是这个吗?DateTime
如果是这样,它将是
dateTime.toDate()
正如斯卡夫曼上面所说
dateTime.toDate()
应该做的伎俩。但请记住,如果 dateTime 对象的时区与用户当前时区不同, dateTime.toDate() 将返回用户时区中的日期对象。IE
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
因为我的系统时间在 MDT
我猜你通过 Date.getTime() 将它转换为 UTC。之后,在另一个对象上使用构造函数/设置器。
转换为date
:
dateTime.toDate()
转换为DateTime
:
new DateTime(new Date())
如果要将 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()
方法,例如:
Date dt = new Date();
DateTime datetime = New DateTime(dt);
Date result = dateTime.toDate();
您可以轻松地使用toDate()
获取日期时间的函数java.util.Date
:
Date date = MydateTime.toDate();