我正在尝试按以下格式将当前日期时间输出为 UTC:
2016-01-11T14:08:42+00:00
final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
final String dateString = formatter.format(new Date());
“dateString”现在应包含“2016-01-11T14:08:42+00:00”,但它包含“2016-01-11T14:08:42Z”。
如果没有“UTC”时区设置,我会得到正确的格式,但是 - 当然 - 在我的特定时区......
有任何想法吗?
请参阅文档简单日期格式 https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#iso8601timezone:
对于格式化[使用 ISO 8601 时区],如果距 GMT 的偏移值为 0,则会生成“Z”。
因此,这种行为是预期的。
您可以:
- 使用 RFC 822 时区格式化程序
ZZZ
;但是,这会产生“+0000”
- 操作字符串来替换最后的
Z
: str.replaceAll("Z$", "+00:00")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)