
本文介绍了如何将从上游系统获取的 EDT 时区时间字符串转换为 UTC 时间。通过使用 java.time 包中的类,如 ZonedDateTime 和 DateTimeFormatter,可以轻松地解析时间字符串并将其转换为 UTC 时间,以便存储到实体中。文章提供了详细的代码示例,展示了如何实现这一转换,并提供了相关的注意事项。
在处理来自不同系统的数据时,经常会遇到时区转换的问题。本文将详细介绍如何将 EDT (Eastern Daylight Time) 时区的时间字符串转换为 UTC (Coordinated Universal Time) 时间,并提供 Java 代码示例。
Java 8 引入了 java.time 包,它提供了强大的日期和时间处理功能。我们可以使用该包中的类来完成时区转换。
核心类包括:
以下是一个完整的示例,演示了如何将 EDT 时间字符串转换为 UTC 时间:
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
String dateFromUpstream = "11-14-2022 10:41:12 EDT";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MM-dd-yyyy HH:mm:ss z", Locale.ENGLISH);
ZonedDateTime zdt = ZonedDateTime.parse(dateFromUpstream, dtf);
Instant instant = zdt.toInstant();
System.out.println(instant);
// Or get a ZonedDateTime at UTC
ZonedDateTime zdtUTC = zdt.withZoneSameInstant(ZoneOffset.UTC);
System.out.println(zdtUTC);
// If you want LocalDateTime
LocalDateTime ldt = zdtUTC.toLocalDateTime();
System.out.println(ldt);
}
}代码解释:
输出结果:
2022-11-14T15:41:12Z 2022-11-14T15:41:12Z 2022-11-14T15:41:12
正如 Basil Bourque 建议的,也可以使用 OffsetDateTime 来进行转换:
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
String dateFromUpstream = "11-14-2022 10:41:12 EDT";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MM-dd-yyyy HH:mm:ss z", Locale.ENGLISH);
ZonedDateTime zdt = ZonedDateTime.parse(dateFromUpstream, dtf);
OffsetDateTime odtUTC = zdt.toOffsetDateTime()
.withOffsetSameInstant(ZoneOffset.UTC);
System.out.println(odtUTC);
}
}此代码首先将 EDT 时间字符串解析为 ZonedDateTime,然后将其转换为 OffsetDateTime,最后使用 withOffsetSameInstant 方法将偏移量设置为 UTC。
输出结果:
2022-11-14T15:41:12Z
本文介绍了如何使用 java.time 包将 EDT 时间字符串转换为 UTC 时间。 通过使用 ZonedDateTime 和 DateTimeFormatter,可以轻松地完成时区转换。在实际应用中,需要根据具体的需求选择合适的日期时间类型进行存储。 建议查阅 Trail: Date Time 以了解更多关于 java.time API 的信息。
以上就是将 EDT 时间字符串转换为 UTC 时间的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号