15.01.2015, 13:22 | #28 |
Участник
|
После установки CU8 новые часовые пояса не появились, а вот с установкой KB3012215 (уже после CU8) - да. При этом, никаких автоматических обновлений дат в существующих записей не произошло (не смотря на то, что MS пишут что TZID поля для того и нужны и "Upgrades provided by Microsoft automatically make these corrections when they update time zone and DST rules.", а отдельного патчера, как известно, в 2012 уже нет.
И по-другому видимо стало интерпретироваться SDAY. Всегда это был номер недели в месяце (5 = последняя неделя). И в новых записях TIMEZONESRULESDATA так и настроено: RULEID=61005, TZENUM=61, YEAR=2014, BIAS=-180, ..., SYEAR=2014, SMONTH=10, SDAYOFWEEK=0, SDAY=5, SHOUR=2, ... Т.е. воскресенье последней недели, что соответствует 26 октября когда и был перевод. Но в реальности это интерпретируется как 5 октября: X++: info(strFmt("%1", DateTimeUtil::getDifference(dtu, DateTimeUtil::applyTimeZoneOffset(dtu, DateTimeUtil::getUserPreferredTimeZone())) / 3600)); А для 2009 года уже работает правильно, для 24 октября (dtu = 2009-10-24T14:01:36) -4 и для 25 октября (последнее воскресенье в 2009-м) (dtu = 2009-10-25T14:01:36) -3, хотя запись в TIMEZONESRULESDATA настроена также. Может я где-то ошибся, хорошо бы если кто-то проверил выполнить на своем приложении с CU8. |
|
Теги |
time, time zone, utc, utcdatetime, зимнее время, часовые пояса |
|
|