gpt4 book ai didi

java - 如何将(UTC 中的字符串)日期转换为毫秒而不影响其在 Java 中的时区

转载 作者:行者123 更新时间:2023-11-29 04:16:14 25 4
gpt4 key购买 nike

考虑以下字符串是 UTC 时间,我希望使用 java 以毫秒为单位的等效时间。

String flcDate = "2018-09-07 05:45:00.0";
String geofenceDate = "2018-07-27 08:42:20";

我正在尝试下面的代码,但它会根据我所在的时区更改毫秒数。

public static long stringToMilliSeconds(String string) throws ParseException {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
TimeZone fromTimeZone = calendar.getTimeZone();
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
calendar.setTimeZone(fromTimeZone);

calendar.setTime(sdf.parse(string));
System.out.println(calendar.getTime().toString());


return calendar.getTime().getTime();
}

最佳答案

这使用本地日期时间和即时转换字符串。

return LocalDateTime.parse("2018-09-07 05:45:00.0", 
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S"))
.toInstant(ZoneOffset.UTC)
.toEpochMilli(); //1536299100000

生成的 long 表示输入日期/时间(UTC 时间)的 Epoch 毫秒数:

Instant.ofEpochMilli(1536299100000L)  ==> 2018-09-07T05:45:00Z

对于第二个字符串,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss") 可以用作格式化程序。

关于java - 如何将(UTC 中的字符串)日期转换为毫秒而不影响其在 Java 中的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52251795/

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