XMLGregorianCalendar в java, без часовой пояс

Как создать XMLGregorianCalendar без часового пояса? Нет смещения по времени (0) == UTC, который выводит "Z" на выходе. Значение моего поля - это неявное местное время, где локальность указана в другом месте в записи xml (например, адрес).

Как создать XMLGregorianCalendar с неопределенным часовым поясом (TimeZone неопределенный)?

Действующие форматы XML-стандарта XML ISO-8601 включают:

  • CCYY-MM-DDThh: mm: ss - без указателя времени Zulu или TimeOffset относится к местному времени относительного физического местоположения.
  • CCYY-MM-DDThh: mm: ssZ - DateTime для относительного физического местоположения выражается в UTC (Zulu) time, для локального времени должно быть выполнено преобразование.
  • CCYY-MM-DDThh: mm: ss + 05: 30 DateTime для относительного физического местоположения выражается в некотором часовом поясе, который +5 часов и 30 минут смещен от UTC. Для локального времени мы должны сначала преобразовать в UTC, затем в локальное время, переведя из UTC. Нет гарантии, что предоставленное местоположение является местным временем для местоположения записи.
+2
источник поделиться
1 ответ

Я посмотрел документацию XMLGregorianCalendar. В таблице вверху, в нижнем ряду, говорится, что часовой пояс

Количество минут или DatatypeConstants.FIELD_UNDEFINED.

Поэтому давайте попробуем последний вариант:

    System.out.println(xcal);
    xcal.setTimezone(DatatypeConstants.FIELD_UNDEFINED);
    System.out.println(xcal);

В одном тестовом прогоне это напечатано:

2017-11-30T07:54:05.647+01:00
2017-11-30T07:54:05.647

После того, как я установил часовой пояс в undefined, он больше не печатает смещение. Поэтому я считаю, что получил то, что вы хотите.

+2
источник

Посмотрите другие вопросы по меткам или Задайте вопрос