gpt4 book ai didi

java - 是否可以根据两个时间戳确定 UTC 偏移量?

转载 作者:行者123 更新时间:2023-12-01 20:15:30 27 4
gpt4 key购买 nike

假设我有两个时间戳。一个采用 UTC,另一个时区未知,但有日期和时间。后者的格式为YYYY:MM:DD HH:MM:SS

通过简单地从 UTC 时间戳中减去第二个时间戳,然后对小时进行四舍五入来获取与 UTC 的偏移量是否合理?

有没有一种简单的方法可以使用 Java 来做到这一点? (例如 Joda 或 JUT?)

谢谢!

一点背景知识:这些日期来自图像的 EXIF 元数据。 EXIF 以以下格式存储图像的 CreateDate:YYYY:MM:DD HH:MM:SS,不带时区信息。它还在 GPSTimeStamp 下存储 UTC 时间戳(有时)。使用这两个值,我希望导出偏移量以便用它存储创建日期。尽管有 TZ 偏移量的 EXIF 元数据,但相机很少记录它。

最佳答案

这里有一个建议:

String dateTimeStringUtc = "2017-08-25T11:46:47.307";
// for the sake of the example I took North Korean time; don’t tell anyone just yet :-)
String dateTimeStringUnknownOffset = "2017-08-25T20:16:47.307";

LocalDateTime utcTime = LocalDateTime.parse(dateTimeStringUtc);
LocalDateTime unknownOffsetTime = LocalDateTime.parse(dateTimeStringUnknownOffset);
long offsetSeconds = ChronoUnit.SECONDS.between(utcTime, unknownOffsetTime);
if (Math.abs(offsetSeconds) > 64800) { // out of range
System.out.println("The time strings cannot represent the same time");
} else {
ZoneOffset offset = ZoneOffset.ofTotalSeconds((int) offsetSeconds);
System.out.println("The zone offset is " + offset);
}

打印:

The zone offset is +08:30

正如评论中所讨论的,四舍五入到整个小时通常是一个糟糕的主意。现在四舍五入到一刻钟可能比较安全,但我犹豫了,谁知道明年是否会有地方引入8点20分的偏移量?历史上已经存在以秒为单位的区域偏移量,因此如果您的时间戳表示“美好的过去”,您可能应该避免任何舍入。

关于java - 是否可以根据两个时间戳确定 UTC 偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45871744/

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