我正在生成一个包含有效 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
)。
还有其他方法可以按照我需要的方式格式化日期吗? (最好没有第 3 方)
最佳答案
另一种选择——也埋在 jaxb api 中——(不需要 Jodatime):
Calendar c = ...
String printDate = javax.xml.bind.DatatypeConverter.printDateTime(c);
HTH
关于java - 格式化 XML 的日期以包含 UTC 偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6320183/