我尝试按以下格式输出当前日期时间为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"时区设置我得到了正确的格式,但 - 当然 - 在我的特定时区......
有什么想法吗?
答案 0 :(得分:11)
请参阅SimpleDateFormat的文档:
格式化[使用ISO 8601时区],如果GMT的偏移值为0,则" Z"生产。
所以,这种行为是预期的。
你可以:
ZZZ
;但是,这会产生" + 0000" Z
:str.replaceAll("Z$", "+00:00")