我正在生成一个包含有效XML格式日期的XML,我需要它也包括UTC偏移量。
我使用的是groovy,但我将展示我使用的Java代码(任何一种语言的答案都可以):
Calendar c = Calendar.getInstance();
long timeZoneOffset = c.timeZone.getOffset(c.getTimeInMillis())/(1000*60*60);
SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
formatter.format(c.getTime()) + "+0" + timeZoneOffset + ":00";
上述代码给出了我
2011-06-12T07:23:25.000+03:00
, 但是这个代码有两个问题:
- 它太难看了,也许不是最好的方法
- 对于印度(GMT +5:30)、尼泊尔 (GMT +5:45)等时区无效。
new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss Z")
来处理时区,但它给我返回的是 2011-06-12T07:23:25.000+0300
,这不是正确的格式(+0300
而不是 +03:00
)。还有其他的方法来满足我需要的日期格式吗?(最好不用第三方库)