?

Log in

No account? Create an account
 
 
30 Октябрь 2014 @ 21:12
Sharepoint, даты, зимнее время и смена часового пояса  
Имеется портал на Sharepoint Foundation 2010. На прошлой неделе был переход на зимнее время, значит, надо и портал на него перевести. Но дело в том, что время Шерпойнта не зависит от времени сервера, где он установлен, - в том плане, что всякие переводы на летнее-зимнее время задаются в настройках самого Шерпойнта. Был установлен патч, устанавливающий летнее время для России (без перехода на зимнее), поэтому портал сам не поменял время. Патча для зимнего времени пока нет (боюсь, в ближайшее время он не выйдет), поэтому пришлось в понедельник утром на всех узлах (сайтах) вручную устанавливать часовой пояс UTC+3. И выяснилось, что во многих списках даты откатились на день назад. Дело в том, что в базе Шерпойнта время хранится в UTC, т.е. все значения времени, введенные в поля соответствующего типа, конвертируются в UTC. Т.е., например, если часовой пояс - UTC+4, то у поля со значением 01.04.2014 8:00 значение в БД будет 01.04.2014 4:00, а при отображении на сайте прибавляется поправка, и мы видим то время, которое ввели. Далее: дело в том, что у поля типа "Дата и время" есть формат "Только дата", при его использовании время становится равным 0:00 (т.е. мы вводим дату и время вроде 01.04.2014 0:00). Но эти самые 0:00 при сохранении в БД тоже конвертируются в UTC, и в итоге при, например, UTC+4 из 01.04.2014 0:00 мы получаем 31.03.2014 20:00. При отображении на сайте прибавляется поправка, и мы все нормально видим. Но дело в том, что у нас теперь поправка - 3 часа, т.е. из 31.03.2014 20:00, хранящегося в БД, на сайте мы видим 31.03.2014 23:00 - вот и откат на один день назад. И, насколько я поняла, это никак нельзя исправить - такова логика Шерпойнта.
Буду думать, как нормально перевести время на зимнее и сохранить старые даты.
 
 
Настроение: angryзлой(ая)
Музыка: Pursuing The End - Cage Of Hypocrisy | Powered by Last.fm