Цитата:
Сообщение от
Lanai
info(enum2str(DateTimeUtil::getOriginatingTimeZone(DateTimeUtil::getSystemDateTime())));
Выдает результат:
Info Сообщение (14:41:22) (GMT) Касабланка, Монровия, Рейкьявик
На сколько я понимаю, функция getOriginatingTimeZone() извлекает тайм-зону из сохраненных в БД значений полей типа DateTime (для которых сохраняется эта тайм-зона), за исключением системных ModifiedDateTime и CreatedDateTime
Функции getSystemDateTime(), newDateTime() класса DateTimeUtil эту информацию в возвращаемом значении не сохраняют
Цитата:
Сообщение от
Lanai
А код:
info(DateTimeUtil::toStr(DateTimeUtil::getSystemDateTime()));
Выдает:
2016-01-15T11:42:05
Показывает время на 3 часа меньше.
все правильно.
преобразование в строку не учитывает тайм-зону
Для того, что бы тайм-зона учлась, это надо проделать явно.
Например, с помощью функции DateTimeUtil::applyTimeZoneOffset() (надо учесть, что для возвращаемого значения просто прибавится время смещения таймзоны)
Контролы на формах умеют учитывать текущее время пользователя автоматически (если не было указано иное с помощью свойства timezonePreference)
Цитата:
Сообщение от
Lanai
В Сервис - Дата сеанса:
Текущая временная зона = (UTC+03:00) Волгоград, Москва, Санкт-Петербург (RTZ 2)
Временная зона сеанса = (UTC+03:00) Волгоград, Москва, Санкт-Петербург
Без "(RTZ 2)"
Если щелкнуть на поле с Временной зоной сеанса, то значение в нём исчезает.
Что это означает? Что не так с временными зонами? Как исправить?
Если у вас используется международная версия Windows с установленным русским MUI, то поможет вот это
Y2K11 или переход на зимнее время
либо, у вас не сделаны изменения в ktd-файле для новых названий тайм-зон. Посмотрите в той же теме - выше об этом пишется