gpt4 book ai didi

java.time.format.DateTimeParseException : Unable to obtain ZonedDateTime from TemporalAccessor in format ddMMyyyyhhmmss

转载 作者:行者123 更新时间:2023-11-29 04:10:30 30 4
gpt4 key购买 nike

我在将字符串格式化为 ZonedDateTime 时遇到问题。

我的客户希望日期采用 ddMMyyyyhhmmss 等格式,并且没有分隔符或类似内容。

这就是我到目前为止所做的

import java.time.format.DateTimeFormatter;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;


public class MyClass {
public static void main(String args[]) {

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ddMMyyyyhhmmss");
String test = formatter
.format(ZonedDateTime.now()).toString();
System.out.println(test);
ZonedDateTime a = ZonedDateTime.parse(test, formatter);
System.out.println(a.toString());
}
}

虽然它正确地生成了字符串,但在创建 LocalDateTime 变量的解析过程中发生了错误:

28032019100707

Exception in thread "main" java.time.format.DateTimeParseException: Text '28032019100707' could not be parsed: Unable to obtain ZonedDateTime from TemporalAccessor: {MilliOfSecond=0, MinuteOfHour=7, HourOfAmPm=10, NanoOfSecond=0, MicroOfSecond=0, SecondOfMinute=7},ISO resolved to 2019-03-28 of type java.time.format.Parsed
at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1920)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1855)
at java.time.ZonedDateTime.parse(ZonedDateTime.java:597)
at MyClass.main(MyClass.java:14)
Caused by: java.time.DateTimeException: Unable to obtain ZonedDateTime from TemporalAccessor: {MilliOfSecond=0, MinuteOfHour=7, HourOfAmPm=10, NanoOfSecond=0, MicroOfSecond=0, SecondOfMinute=7},ISO resolved to 2019-03-28 of type java.time.format.Parsed
at java.time.ZonedDateTime.from(ZonedDateTime.java:565)
at java.time.format.Parsed.query(Parsed.java:226)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
... 2 more
Caused by: java.time.DateTimeException: Unable to obtain ZoneId from TemporalAccessor: {MilliOfSecond=0, MinuteOfHour=7, HourOfAmPm=10, NanoOfSecond=0, MicroOfSecond=0, SecondOfMinute=7},ISO resolved to 2019-03-28 of type java.time.format.Parsed
at java.time.ZoneId.from(ZoneId.java:466)
at java.time.ZonedDateTime.from(ZonedDateTime.java:553)
... 4 more
Command exited with non-zero status 1

在 Stack Overflow 上搜索,我看到同一问题的一些答案建议使用 LocalDateTime 类作为中间体,然后解析为 ZonedDateTime,但它仍然不起作用,抛出相同的错误。

我还尝试更改使用以下过程初始化 DateTimeFormatter 的方式:

DateTimeFormatter formatter = new DateTimeFormatterBuilder().appendPattern("ddMMyyyyhhmmss")
.toFormatter()
.withZone(ZoneId.systemDefault());

但是还是不行。我该如何修复它?

最佳答案

你想要:

  String test = ZonedDateTime.now().format(formatter);

关于java.time.format.DateTimeParseException : Unable to obtain ZonedDateTime from TemporalAccessor in format ddMMyyyyhhmmss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55394931/

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