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

У нас есть действительно странная проблема в xpages с датами, документ Notes, который у нас есть, содержит поле даты, а значение - это только дата, временная часть отсутствует.

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

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

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

есть идеи?


person Thomas Adrian    schedule 20.06.2012    source источник


Ответы (4)


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

person Jeremy Hodge    schedule 20.06.2012
comment
Спасибо, но в поле даты нет части времени. мы никогда не хотим отображать часовые пояса, так как это даты рейсов, и они всегда должны быть указаны в местной дате. Если в поле указано UTC, что составляет -2 по шведскому времени, нет смысла добавлять время на один день в 12:00. - person Thomas Adrian; 21.06.2012
comment
Независимо от того, отображаете ли вы его или нет, это не означает, что объекты Java, выполняющие преобразование, не заполняют его. Вероятно, он заполняет его текущим временем и предполагает UTC. Таким образом, когда пользователь входит в систему в 23:30 по UTC-2, дата, которую он создает в серверной части, на два часа больше, 02.06.2012, 1:30 по UTC. если вы добавите свой соответствующий код TZ к значению, держу пари, ваша проблема исчезнет. В нашем случае мы сохранили только время и получили сдвиг времени на 4 часа (у нас UTC-5 с летним временем, поэтому -4 часа). Мы начали хранить полную дату и время с TZ, и это исчезло. - person Jeremy Hodge; 21.06.2012
comment
спасибо, мне удалось воспроизвести проблему локально. - person Thomas Adrian; 25.06.2012

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

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

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

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

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

person Denny    schedule 17.12.2012

Возможно, это связано с этим? http://www-304.ibm.com/support/docview.wss?uid=swg21508734

Я видел несколько отчетов о проблемах XPages Dates и TimeZone.

person Fredrik Norling    schedule 20.06.2012

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

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

Хорошая устаревшая статья, посвященная Notes, об этом. http://www-10.lotus.com/ldd/ddwiki.nsf/dx/05022009100728PMAGU5MB.htm

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

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

person charles ross    schedule 07.08.2013