作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我如何将选定的日期转换为没有时区差异的毫秒。下面是我的代码。
String selectedDate=Jan 18, 2020;
SimpleDateFormat format = new SimpleDateFormat("MMM dd, yyyy", Locale.US);
Date date = format.parse(selectedDate);
运行时我得到的日期如下2020 年 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 6 和 7 的向后移植(对于 JSR-310,为 ThreeTen)。关于java - 如何将日期转换为毫秒而不带时区偏移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59801196/
我是一名优秀的程序员,十分优秀!