在Java SE 8 API中准备UTC日期的特定格式时,无法解析00秒

在Java SE 8 API中准备UTC日期的特定格式时,无法解析00秒,java,datetime,java-8,Java,Datetime,Java 8,代码: 输出: LocalDateTime ldt3 = getUtcDateTime("2016-02-01T10:11:00Z"); System.out.println(ldt3); LocalDateTime localDateTime = getCurrentUtcDateTime(); ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.of("Z")); DateTimeFormatter formatter = D

代码:

输出:

LocalDateTime ldt3 = getUtcDateTime("2016-02-01T10:11:00Z");
System.out.println(ldt3);
LocalDateTime localDateTime = getCurrentUtcDateTime();
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.of("Z"));
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX");
ZonedDateTime.parse(zonedDateTime.format(formatter), formatter)
                .toString();
所需输出:

2016-02-01T10:11
2016-02-12T12:12Z
有可能得出这样的结果吗?另外,如何在零秒的LocalDateTime之外打印UTC字符串值

代码:

输出:

LocalDateTime ldt3 = getUtcDateTime("2016-02-01T10:11:00Z");
System.out.println(ldt3);
LocalDateTime localDateTime = getCurrentUtcDateTime();
ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.of("Z"));
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX");
ZonedDateTime.parse(zonedDateTime.format(formatter), formatter)
                .toString();
所需输出:

2016-02-01T10:11
2016-02-12T12:12Z

如何在这两种情况下都获得所需的输出?

您应该使用
DateTimeFormatter
打印输出,而不是再次对其进行重新分级。
LocalDateTime
没有系统来存储创建它时使用的格式化程序

2016-02-12T12:12:00Z

您应该使用
DateTimeFormatter
打印输出,而不是再次对其进行重新分级。
LocalDateTime
没有系统来存储创建它时使用的格式化程序

2016-02-12T12:12:00Z

我不明白你的问题。你想要什么?是否要打印
2016-02-01T10:11:00
?如果是这样,为什么你要重新分析格式化的内容而不打印格式化的字符串?请参阅本指南,我不理解你的问题。你想要什么?是否要打印
2016-02-01T10:11:00
?如果是这样,为什么你要重新分析格式化的内容而不打印格式化的字符串?请参阅本指南,但这真的是OP想要的吗?显然,他们知道怎么做(因为他们在问题中做到了)。据我所知,op一直使用
.toString()
,而没有意识到他需要输出格式化的output@Ferrybig-谢谢,看起来我在最后一行和自己争吵了,但这真的是OP想要的吗?显然,他们知道怎么做(因为他们在问题中做到了)。据我所知,op一直使用
.toString()
,而没有意识到他需要输出格式化的output@Ferrybig-谢谢,看来我在最后一行跟自己吵架了