当前位置: 首页 > 面试题库 >

Java 8将给定的时间和时区转换为UTC时间

姬存
2023-03-14
问题内容

我有一个字符串类型就像一个计时:"2015-01-05 17:00"ZoneId"Australia/Sydney"

如何使用Java 8 datetime API将此时间信息转换为与UTC时间相对应的时间?

还需要考虑DST的东西。


问题答案:

您正在ZonedDateTimeJava8 中寻找类-带有时区的完整日期时间和与UTC /格林威治标准时间的偏移量。就设计而言,此类应主要视为a
LocalDateTime和a
的组合ZoneId。的ZoneOffset是一个至关重要的,但次要的,一条信息,用于确保所述类表示瞬间,特别是在夏令重叠。

例如:

ZoneId australia = ZoneId.of("Australia/Sydney");
String str = "2015-01-05 17:00";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
LocalDateTime localtDateAndTime = LocalDateTime.parse(str, formatter);
ZonedDateTime dateAndTimeInSydney = ZonedDateTime.of(localtDateAndTime, australia );

System.out.println("Current date and time in a particular timezone : " + dateAndTimeInSydney);

ZonedDateTime utcDate = dateAndTimeInSydney.withZoneSameInstant(ZoneOffset.UTC);

System.out.println("Current date and time in UTC : " + utcDate);


 类似资料:
  • 我有当前的毫秒utc/unix时间,现在我想将其转换为特定时区的日期时间,例如EST utc-5(纽约)。 我使用以下方法获得当前的毫秒/ unix时间: 现在我想把这个长值转换成一个特定的时区。 我如何使用 Joda time 做到这一点,因为我听说这是最好的库,但 API 对我来说似乎有点混乱。

  • 问题内容: 我有一个UTC时区,例如: 还有一个pytz时区对象: 转换为给定时区的正确方法是什么? 问题答案: 我想我明白了: 这行代码首先将朴素的(不了解时区的) 对象转换为包含时区(UTC)的对象。然后,它使用该功能根据请求的时区调整时间。

  • 问题内容: 这是我的约会日期“ 15-05-2014 00:00:00” 如何将IST转换为UTC即(到14-05-2014 18:30:00) 基于时区到UTC时区。 我的代码是 如果用户从任何区域输入相同的日期,则将获得UTC时间(例如:从澳大利亚,然后从15-05-2014 00:00:00到14-05-2014 16:00:00) 请任何建议。 问题答案: 您不能将日期值“转换为”其他时区

  • > 如何将IST转换为UTC,即(至2014年5月14日18:30:00) 我的代码是 > 如果用户从任何区域输入相同的日期,则将获得UTC时间(例如:从澳大利亚输入,然后是2014年5月15日00:00:00至2014年5月14日16:00:00) 请提出任何建议。

  • 由于对java时间的发展以及为什么会有成千上万的相关帖子感到十分困惑,我设法使用jodaTime存储了UTC时间: 因为我使用的是Hibernate(并且不愿意使用JodaTime的适配器来正确处理版本4),所以我只使用这个jodaTime方法将jdk时间转换为utc。这似乎产生了预期的结果,本地时间(当前伦敦格林尼治标准时间1)通过从本地时间减去1来转换为UTC。 目前为止,一切都好。然后,每当