Работа со временем и датами
При работе с датами и временем следует учитывать часовые пояса:
- устройства на котором установлен Радиант (ОС);
- БД;
- настройки пользователя.
При входе (Action=Login) в Радиант пользователю присваивается значение для поля UserTimeZone исходя из следующих правил:
- если часовой пояс указан пользователем в личных настройках (Action=AgentPreferences), то он и используется в качестве ЧП для текущего взаимодействия с Радиант;
- в противном случае используется значение по умолчанию, заданное в настройках Радиант для поля UserDefaultTimeZone;
- в случае отсутствия оного используется UTC.
Соответственно всякий раз, когда потребуется преобразовать дату и время к часовому поясу пользователя, нужно использовать значение UserTimeZone, которое можно узнать при вызове Kernel::System::User::GetUserData.
Возможности Kernel::System::DateTime для работы со временем и датами
Основные вызовы для работы со временем и датами расположены в Kernel::System::DateTime.
Создать
- new
- Set
- Clone
Получить
- Get
- RadiantTimeZoneGet
- UserDefaultTimeZoneGet
- SystemTimeZoneGet
- LastDayOfMonthGet
- TimeZoneList
- TimeZoneByOffsetList
Изменить
- Add
- Subtract
Преобразовать
- Format
- ToTimeZone
- ToRadiantTimeZone
- ToEpoch
- ToString
- ToEmailTimeStamp
- ToСTimeString
Проверить
- Validate
- IsVacationDay
- IsTimeZoneValid
Сравнить
- Delta
- Compare