我正在编写一个测试来测试许可证密钥的有效性..同时,更新代码以使用java 8 java.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的字符串?
答案 0 :(得分:1)
如评论中所述,时区已包含在您的字符串中:
"2015-05-19 19:46:26 Z"
此字母Z
来自military - NATO convention
这个的基础是Z - 祖鲁时间 - 零子午线时间 - 与UTC相同这是一个为时区指定字母的惯例,其中Z =零子午线,祖鲁语是代表字母Z的字,当它是用于交流。它有时在美国军事和北约使用,与24小时制时钟一起使用,也很受欢迎,可用于电影参考时间。
其他字母/单词用于UTC以外的其他时区.....
阅读cited reference了解详情。