Я генерирую 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
).
Любой другой способ отформатировать дату так, как мне это нужно?(желательно без третьих лиц)