gpt4 book ai didi

java - 在 Java 中使用 DateTimeFormatter 解析 ZonedDateTime.now()

转载 作者:行者123 更新时间:2023-12-01 19:57:42 27 4
gpt4 key购买 nike

我试图用特定格式解析当前时间戳,但每次尝试我都会收到java.time.format.DateTimeParseException。我的代码:

ZonedDateTime.parse(
ZonedDateTime.now().toString(),
DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss.SSS")
.withZone(ZoneId.of("UTC")) //I also tried ZoneId.systemDefault()
)

结果:

java.time.format.DateTimeParseException:
Text '2018-02-27T11:01:18.776+01:00[Europe/Berlin]' could not be parsed at index 2

问题是为什么我无法以所需的格式解析它以及如何实现它?

附注我还看到了this发布并尝试设置 ZoneId 但没有帮助。

最佳答案

要解析 ZonedDateTime.toString() 的结果,您根本不需要显式格式化程序:

    System.out.println(ZonedDateTime.parse(
ZonedDateTime.now(ZoneId.of("Asia/Kuala_Lumpur")).toString()));

此打印内容

2018-02-27T21:48:16.214832+08:00[Asia/Kuala_Lumpur]

您问题中的格式化程序非常适合格式化:

    System.out.println(ZonedDateTime.now(ZoneId.of("Asia/Kuala_Lumpur"))
.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss.SSS")));

这打印:

27.02.2018 21:48:16.237

您是否混淆了这个词的用法? 解析意味着分析字符串以理解它,在本例中将其转换为日期时间对象,如ZonedDateTime。相反的转换称为格式化,将日期时间对象转换为特定格式的字符串,通常用于人类可读性或数据交换。

关于java - 在 Java 中使用 DateTimeFormatter 解析 ZonedDateTime.now(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49006305/

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