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