gpt4 book ai didi

java - 在 Java 和 .net 中使用 UTC 时间?

转载 作者:行者123 更新时间:2023-11-30 08:42:51 24 4
gpt4 key购买 nike

在我的应用程序中,我从一个文件中读取一个字符串值,该文件表示 UTC 格式的时间并由 .net 2015 生成。在我的 Java 应用程序中,我读取了这个值并需要将其转换为首先是一个 long 值,然后将其转换回 UTC 时间。这是我用 Java 将时间转换为长值的代码:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = df.parse(timeString);
long timeLong = date.getTime();

并将其转换回 UTC 格式:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = new Date(timeLong);
newTimeStamp = df.format(date);

但是,我得到的最终 UTC 时间与我从文件中读取的原始时间不同。时差将近两个小时。我想知道是不是因为Java和.Net在时间转换实现上的差异。

我原来的时间是2015-12-22T21:00:11.8701036Z完成此转换后我得到的最后时间是 2015-12-22T23:25:12.000036Z .

附注我使用的是 Java 1.7。

最佳答案

SimpleDateFormat 中的S 模式表示毫秒,而不是小数毫秒。因此,8701036 被解析为 8701036 毫秒,总日期(或时间戳)增加了 8701 秒。这相当于您看到的额外 2 小时 25 分钟 1 秒。

SimpleDateFormat 不适用于毫秒数。据我所知,您必须自己解析它们。

关于java - 在 Java 和 .net 中使用 UTC 时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34441047/

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