Java 8 DateTimeFormatter格式化失败

Java 8 DateTimeFormatter格式化失败,java-8,Java 8,我正在编写一个直到测试来测试许可证密钥的有效性。。同时,更新代码以使用Java8java.time包 所以。。创建“有效期至”日期时间并将其格式化为字符串: LocalDateTime now = LocalDateTime.now(Clock.systemUTC()); LocalDateTime nowPlus1Hour = now.plusHours(1); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM

我正在编写一个直到测试来测试许可证密钥的有效性。。同时,更新代码以使用Java8java.time包

所以。。创建“有效期至”日期时间并将其格式化为字符串:

LocalDateTime now = LocalDateTime.now(Clock.systemUTC());
LocalDateTime nowPlus1Hour = now.plusHours(1);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z");
formatter = formatter.withZone(Clock.systemUTC().getZone());
String validUntilString = nowPlus1Hour.format(formatter);
这个。。大部分是有效的。(我的上一个版本引发了异常,因为我没有创建格式化程序“withZone”。)

然而,“validUntilString”的值是“2015-05-19 19:46:26 Z”“真的”Z’。来吧


所以。。给定LocalDateTime,如何获得包含(是的,模糊,但在本例中为UTC,标准)时区id的字符串?

如注释中所述,时区已包含在字符串中:

“2015-05-19 19:46:26 Z”

这个字母
Z
来自一个

其基础是Z–Zulu时间–零子午线时间–与UTC相同,将字母分配给时区是一种惯例,其中Z=零子午线,Zulu是在通信中使用的代表字母Z的单词。它有时在美国军方和北约中与24小时时钟一起使用,在电影中也常用来表示时间

其他字母/单词用于UTC以外的其他时区


有关详细信息,请阅读。

Z是UTC的同义词。你所拥有的在我看来很好。好好看看。。现在我不觉得很傻了。Z代表祖鲁时间感谢你们两个。JB Nizet,如果你能“回答”这个问题,我会给你一个绿色的大对勾。