[英]How to convert date to milliseconds with out timezone offset?
我如何在没有时区差异的情况下将所选日期转换为毫秒。 下面是我的代码。
String selectedDate=Jan 18, 2020;
SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy", Locale.US);
Date date = format.parse(selectedDate);
在跑步时,我得到的日期是周六 1 月 18 日 00:00:00 GMT+05:30 2020。但我希望没有像 2020 年 1 月 18 日这样的时区差异。
与UTC相差0:
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("MMM dd, uuuu", Locale.ENGLISH);
String selectedDate = "Jan 18, 2020";
ZonedDateTime zdt = LocalDate.parse(selectedDate, dateFormatter)
.atStartOfDay(ZoneOffset.UTC);
System.out.println(zdt);
long millisSinceEpoch = zdt.toInstant().toEpochMilli();
System.out.println(millisSinceEpoch);
这个snpipet的输出是:
2020-01-18T00:00Z 1579305600000
我正在使用 java.time,现代 Java 日期和时间 API。 您使用的类SimpleDateFormat
和Date
设计糟糕且已经过时,没有人应该再使用它们。
java.time 在较旧和较新的 Android 设备上都能很好地工作。 它只需要至少Java 6 。
org.threeten.bp
导入日期和时间类。java.time
。java.time
到 Java 6 和 7 的 backport(ThreeTen for JSR-310)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.