календарь Primefaces: неправильная запись даты - PullRequest
12 голосов
/ 06 ноября 2011

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

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

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

Ответы [ 8 ]

24 голосов
/ 06 ноября 2011

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

<context-param>
    <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
    <param-value>true</param-value>
</context-param>
2 голосов
/ 16 мая 2014

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

<p:schedule ...ignoreTimezone="false" />
0 голосов
/ 07 марта 2016

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

<p:calendar id="date">
  <f:convertDateTime timeZone="Asia/Singapore"></f:convertDateTime>
</p:calendar
0 голосов
/ 18 июля 2014

Может быть, это потому, что вы не вставили часы.Например, в этом случае

<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>

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

0 голосов
/ 28 апреля 2014

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

<p:calendar timeZone = "" />

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

0 голосов
/ 04 января 2014

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

javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE true

С уважением, Халил

0 голосов
/ 24 апреля 2012

Добавление аргумента -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>
0 голосов
/ 06 ноября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...