2012-06-20 2 views
2

У нас действительно странная проблема в xpages относительно дат, у Notesdocument у нас есть поле даты, а значение - только дата, нет временной части.Даты настраиваются для пользователей только в полночь на моих xpages

В xpage, который я указал для отображения даты как даты/времени. дата отображается правильно на веб-странице, но теперь мы получаем отчеты от пользователей, которые регистрируются ночью (около полуночи) и видят дату, скорректированную на один день. если те же самые люди заходят в дневное время, дата правильная, так что это только кажется, что случилось около полуночи

Я попытался изменить часы на моем клиенте около полуночи, но это не воспроизводит его, поэтому я предполагаю, что это проблема с сервером ,

домино сервер имеет правильную дату/время, и мы используем последнюю версию Domino

какие-либо идеи?

ответ

2

Проблема связана с не имеющим TimeZone, указанный в поле даты/времени. Мы столкнулись с этим только вчера. Если у вас нет указанного TZ, он, по-видимому, принимает UTC и будет соответствующим образом корректироваться. Включите часовой пояс, и ваше поле перестанет корректироваться ошибочно.

+0

Спасибо, но в поле даты нет времени. мы никогда не хотим отображать часовые пояса, поскольку они являются датами полета и всегда должны быть в местной дате.Если поле принимает UTC, то есть -2-швейцарское время, нет смысла, что время добавляет один день в 12 утра. –

+0

Независимо от того, отображает ли оно его, это не означает, что объекты Java, которые выполняют преобразование, не заполняют его. Вероятно, он заполняет его текущим временем и принимает UTC. Поэтому, когда пользователь регистрируется в 11:30 вечера в UTC-2, дата, которую он строит на заднем конце, на два часа больше, 6/2/2012 1:30 UTC. если вы добавите все, что соответствует вашему TZ-коду, значение, которое я ставлю, ваша проблема исчезнет. В нашем случае мы сэкономили только время, и мы получили время, сдвинутое на 4 часа (мы UTC-5 при дневном свете так -4 часа). Мы начали хранить полную дату и время с TZ, и он ушел. –

+0

спасибо, мне удалось воспроизвести проблему локально. –

3

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

система обрабатывает чистую дату как дату в часовом поясе UTC. Значение даты автоматически преобразуется в часовой пояс сервера. Итак, вопрос в том, как предотвратить преобразование?

этот код предотвращает преобразование:

<xp:this.converter> 
    <xp:convertDateTime 
     type="date" 
     ignoreUserTimeZone="true" 
     dateStyle="long" 
     timeZone="UTC"> 
    </xp:convertDateTime> 
</xp:this.converter> 

обратить внимание на "TimeZone" атрибута.

0

Я подозреваю, что ваша версия Domino была 8.5.3, потому что на аналогичные проблемы против 8.5.3 были 2 APAR, LO72278 и LO67745. Fixpack 3 обращается к ним.

Основная причина заключается в том, что Lotus Notes позволяет вам сохранять «дату» без времени или зоны, а на сервере Notes установлен параметр «Часовой пояс» по умолчанию для интерпретации этих неполных вещей, называемых датами. XPages не работает по тем же правилам, и его основная Java хочет знать, в какой зоне вы используете, и смотрит на систему для некоторой подсказки, и обычно будет использовать полуночи в некоторых TZ для обозначения «даты». В разделе «Переполнение стека» существует целый регион «тема сохранения/представления даты» - [дата и время] - поскольку языки и СУБД имеют свой подход.

Nice legacy Notes сфокусированная статья об этом. http://www-10.lotus.com/ldd/ddwiki.nsf/dx/05022009100728PMAGU5MB.htm

XPages статья об этом http://www-10.lotus.com/ldd/ddwiki.nsf/dx/XPagesTimeZones.htm

Жаль, что они не являются полностью на той же странице, я предполагаю, что каждый релиз становится ближе.

Смежные вопросы