【发布时间】:2019-09-25 12:01:01
【问题描述】:
鉴于我有字符串“2019-11-05/23:00”和偏移量“+07:00”,
我将如何在 Java(8) 中将其转换为 LocalDateTime UTC。
我当前的代码
@GetMapping("postDate/{date}")
public void testPost(@RequestParam("timezone") String timeZone, @PathVariable String date) {
String format = "yyyy-MM-dd-HH:mm";
String offset = timeZone;
System.out.println(date);
LocalDateTime timeWithOffset = LocalDateTime.parse(date,
DateTimeFormatter.ofPattern(format));
System.out.println("\n\n\n" + timeWithOffset + "\n\n\n");
// Cant Figure Out to get LocalDateTime timeInUTC
}
邮递员的请求
http://localhost:8080/postDate/2019-11-05-23:00?timezone=+07:00
【问题讨论】:
-
您可以使用
ZonedDateTime或OffsetDateTime并将时区应用为ZoneId,您可以通过传递给此方法的参数String timeZone获得。后者可能会因为此参数中可能未知的时区而失败。 -
关于输入字符串的格式,我建议改用标准 ISO 8601 格式。您已经非常接近符合标准了。
标签: java datetime java-8 datetimeoffset