我正在生成一个包含有效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
)。
还有其他方法可以按照我需要的方式格式化日期吗?(最好没有第三方)