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



我正在尝试以以下格式将当前日期时间输出为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")

相关内容

  • 没有找到相关文章

最新更新