gpt4 book ai didi

java - 如何将日期转换为毫秒而不带时区偏移?

转载 作者:行者123 更新时间:2023-12-02 01:07:46 24 4
gpt4 key购买 nike

我如何将选定的日期转换为没有时区差异的毫秒。下面是我的代码。

 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。您使用的 SimpleDateFormatDate 类设计不佳且早已过时,任何人都不应该再使用它们。

问题:java.time 不需要 Android API 级别 26 吗?

java.time 在旧版和新版 Android 设备上都能很好地工作。它只需要至少 Java 6

  • 在 Java 8 及更高版本以及较新的 Android 设备(从 API 级别 26 开始)中,现代 API 是内置的。
  • 在非 Android Java 6 和 7 中获取 ThreeTen Backport,即现代类的向后移植(ThreeTen for JSR 310;请参阅底部的链接)。
  • 在(较旧的)Android 上使用 ThreeTen Backport 的 Android 版本。它被称为 ThreeTenABP。并确保使用子包从 org. Threeten.bp 导入日期和时间类。

链接

关于java - 如何将日期转换为毫秒而不带时区偏移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59801196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com