当前位置:  开发笔记 > 编程语言 > 正文

如果时区设置为"UTC",SimpleDateFormat将忽略"XXX"

如何解决《如果时区设置为"UTC",SimpleDateFormat将忽略"XXX"》经验,为你挑选了1个好方法。

我试图以下列格式输出当前日期时间: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"时区设置,我会得到正确的格式,但是 - 当然 - 在我的特定时区...

有任何想法吗?



1> Andy Turner..:

请参阅SimpleDateFormat的文档:

对于格式化[使用ISO 8601时区],如果GMT的偏移值为0,则生成"Z".

所以,这种行为是可以预期的.

你可以:

使用RFC 822时区格式化程序ZZZ; 但是,这会产生"+0000"

操纵字符串以替换最终字符串Z:str.replaceAll("Z$", "+00:00")

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有