我试图以下列格式输出当前日期时间: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"时区设置,我会得到正确的格式,但是 - 当然 - 在我的特定时区...
有任何想法吗?
请参阅SimpleDateFormat的文档:
对于格式化[使用ISO 8601时区],如果GMT的偏移值为0,则生成"Z".
所以,这种行为是可以预期的.
你可以:
使用RFC 822时区格式化程序ZZZ
; 但是,这会产生"+0000"
操纵字符串以替换最终字符串Z
:str.replaceAll("Z$", "+00:00")