Календарь приоритетов: неверный ввод даты

Использование jsf 2.2.0.

В течение всей даты, кажется, удаляется один день. Когда я нажимаю на 8 ноября, он отображает 11/08/2011. Но затем он хранит 7 ноября 2011 года в моем поле "Дата" в моем управляемом bean.

Я живу в Сингапуре, задаваясь вопросом, есть ли проблема с часовым поясом.

Ответ 1

попробуйте добавить это в свой web.xml

<context-param>
    <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
    <param-value>true</param-value>
</context-param>

Ответ 2

Если вы используете в своем планировщике праймеры 5:

<p:schedule ...ignoreTimezone="false" />

Ответ 3

Добавление аргумента -Duser.timezone=UTC к фиксированной задаче для параметров запуска для меня.

Подводя итог: p: расписание работает только хорошо, когда следующие параметры являются наборами:

-Duser.timezone=UTC

<context-param>
    <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
    <param-value>true</param-value>
</context-param>

Ответ 4

Я только что добавил в web.xml следующий параметр, и проблема исправлена. Я не включал в себя какую-либо команду, например -Duser.timezone = UTC, при запуске сервера, но все же исправил проблему.

  javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE   правда

Отношения Халиль

Ответ 5

Я использую Wildfly 8 и PF 5.0.RC1, и единственное, что сделало трюк для меня, - это установить часовой пояс календаря ни к чему...

<p:calendar timeZone = "" />

Не знаю, подходит ли это правильное решение, оно скорее похоже на обходное решение, но оно отлично работает локально и развертывается.

Ответ 6

Возможно, это потому, что вы не вставляли часы. Например, в этом случае

<p:calendar id="dateFromCalendar"
    value="#{platform.frameBean.dateFrom}" showOn="button"
    pattern="dd-MM-yyyy" timeZone="Europe/Warsaw">
</p:calendar>

час наступит как 00:00 фактического дня. А поскольку часовой пояс (-02: 00), час будет отображаться как 22:00 дня до фактического дня. Правильная вещь -

<p:calendar id="dateFromCalendar"
    value="#{platform.frameBean.dateFrom}" showOn="button"
    pattern="dd-MM-yyyy HH:mm" timeZone="Europe/Warsaw">
</p:calendar>

Появится час, поэтому часовой пояс сделает правильные вычисления

Ответ 7

В своем календарном компоненте добавьте конвертер и укажите свой часовой пояс, например

<p:calendar id="date">
  <f:convertDateTime timeZone="Asia/Singapore"></f:convertDateTime>
</p:calendar

Ответ 8

Вы пытались установить атрибут timezone и locate? В противном случае вы можете создать объект конвертера, который преобразует дату. Это учебник по созданию настраиваемого конвертера: http://www.roseindia.net/jsf/customconverter.shtml