Проблема часового пояса в Java XMLGregorianCalendar
надеюсь, это не повторение. Я проверил другие поиски здесь, и все они, похоже, говорят о "отображении" даты в правильном формате часового пояса с помощью SimpleDateFormat.
однако моя проблема в том, что я получаю объект XMLGregorianCalendar, который, скажем, в "CET".
Я должен узнать формат из этого объекта и отправить текущее время также в том же часовом поясе, что и сервер.
например: мне нужен объект XMLGregorianCalendar, который возвращает мне в этом формате (с часовым поясом):
2012-09-19T15:23:36.421+02:00
поэтому я просто попробовал этот следующий фрагмент, который, кажется, возвращает только время в локальном часовом поясе : (
TimeZone utc = TimeZone.getTimeZone("CET");
GregorianCalendar gc = new GregorianCalendar();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
df.setTimeZone(utc);
System.out.println(" - Gregorian UTC [" + df.format(gc.getTime()) + "]")
XMLGregorianCalendar currServTime = DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);
System.out.println("currServTime is "+currServTime);
1 ответов
вы должны включить часовой пояс, который вас интересует в GregorianCalendar
, либо передав его конструктор или настройка после. Поэтому любая из этих строк должна работать для вас:
GregorianCalendar gc = new GregorianCalendar(utc);
gc.setTimeZone(utc);