我正在尝试以以下格式将当前日期时间输出为UTC:2016-01-11T14:08:42+00:0
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+000:00",但它包含"2016-01:1T14:08:42 Z"。
如果没有"UTC"时区设置,我会得到正确的格式,但当然,在我的特定时区。。。
有什么想法吗?
请参阅SimpleDateFormat:的文档
对于格式化[使用ISO 8601时区],如果与GMT的偏移值为0,则生成"Z"。
因此,这种行为是意料之中的。
您可以:
- 使用RFC 822时区格式化程序
ZZZ
;但是,这会产生"+0000" - 操作字符串以替换最终的
Z
:str.replaceAll("Z$", "+00:00")