Показать сообщение отдельно
Старый 24.08.2020, 11:01   #1  
matew is offline
matew
Участник
 
37 / 10 (1) +
Регистрация: 10.07.2006
Адрес: Москва
DateTimeUtil::getOriginatingTimeZone неправильно определяет часовой пояс
MS DAx 2009, KernelVersion: 5.0.1500.6491
MS SQL Server 2008 R2

Всем привет.
Метод ядра DateTimeUtil::getOriginatingTimeZone неправильно определяет значение энума TimeZone для российских часовых поясов.
Если из поля типа DateTime таблицы взять значение, в котором хранится значение по гринвичу и для которого в системном поле SQL хранится значение одной из российских тайм-зон, то метод всегда возвращает значение RTZ1 (Калиниград). Для нероссийских тайм-зон все определяется корректно.
Та же проблема, если в коде сформировать значение типа DateTime и указать для него одну из российских тайм-зон (RTZ2 - RTZ11).
При отображении значений на форме и сохранении значений DateTime в БД все корректно: в поле DateTime сохраняется значение по гринвичу, в поле тайм-зоны DateTimeZid записывается правильное значение, соответствующее тайм-зоне, настроенной для текущего пользователя (то есть сопоставление значений по таблицам TimeZoneList и TimeZonesRulesData отрабатывает корректно).