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

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

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

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

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

person Inquisitor Shm    schedule 30.11.2017    source источник


Ответы (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, он больше не печатает смещение. Итак, я считаю, что получил то, что вы хотите.

person Ole V.V.    schedule 30.11.2017
comment
Спасибо - я должен был закрыть этот вопрос еще прошлой ночью, я сам обнаружил это примерно через 5 минут после публикации вопроса. Баллы начисляются за выполненную работу. - person Inquisitor Shm; 30.11.2017