我正在使用此代码: date
-对象开始日期 DatePicker
,作为字符串 Thu Sep 10 00:00:00 GMT+03:00 2020
```
mDate = DateTime(date)
.withHourOfDay(0)
.withMinuteOfHour(0)
.withSecondOfMinute(0)
.withMillisOfSecond(0)
.toDate()
结果呢 `mDate` - `Wed Sep 09 03:00:00 GMT+03:00 2020` 这个怎么了?
1条答案
按热度按时间ve7v8dk21#
您没有转换
DateTime
反对java.util.Date
正确地。正确的方法是从DateTime
对象并初始化java.util.Date
以毫秒为单位。输出:
注:
java.util.Date
不表示日期/时间对象。它只是表示从时间纪元开始的毫秒数1970-01-01T00:00:00Z
. 它没有任何时区或区域偏移信息。打印时,java打印通过应用jvm时区获得的字符串。如果要在其他时区打印,可以使用SimpleDateFormat
如上图所示。我建议您从过时的和容易出错的
java.util
日期时间api和SimpleDateFormat
为了现代人java.time
日期时间api和相应的格式化api(包,java.time.format
). 从trail:date-time了解有关现代日期时间api的更多信息。如果您的android api级别仍然与java8不兼容,请检查如何在android项目中使用threetenabp,以及通过desugaring提供的java8+api。下表显示了现代日期时间类的概述: