Тип для работы с датой и временем. Значение типа ДатаВремя может быть задано следующими способами:
-
С помощью конструктора типа, в котором дата и время указываются в виде строки: ДатаВремя(Представление: Строка). Формат строки см. выше, в описании литерала. В примере ниже в переменную помещается новый объект типа ДатаВремя, как аргумент для которого передается строка соответствующего формата:
метод Скрипт()
пер ДатаСоздания = новый ДатаВремя("2025-05-01 23:30:40")
пер ДатаСозданияФормат = ДатаСоздания.Представление()
;
-
С помощью конструктора типа, в котором составляющие даты и, опционально, времени вводятся отдельными параметрами конструктора: ДатаВремя(Год: Число, Месяц: Число, День: Число, Час: Число, Минута: Число, Секунда: Число, Миллисекунда: Число = 0).
пер ДатаСоздания = новый ДатаВремя(2025, 05, 01, 23:30:40)
-
С помощью конструктора типа, в котором составляющие даты вводятся отдельными параметрами конструктора: ДатаВремя(Год: Число, Месяц: Число, День: Число).
пер ДатаСоздания = новый ДатаВремя(2025, 05, 01)
-
С помощью конструктора типа, в который передаются литералы типов Дата и Вр емя: ДатаВремя(Дата: Дата, Время: Время).
пер ДатаСоздания = новый ДатаВремя({2025-05-01}, {23:30:40})
-
Из значения типа Момент с помощью метода ВДатаВремя(). При этом необходимо указать, для какого часового пояса должно быть приведено время из значения Момент. Если данный экземпляр является значением по умолчанию типа Момент (0001.01.01 00:00:00.000Z), будет возвращено значение по умолчанию для типа ДатаВремя (0001.01.01 00:00:00.000). Пример:
метод Скрипт()
пер МоментСоздания = новый Момент(2025, 05, 01, 23, 30, 40, 345, {UTC+3})
пер МоментСозданияФормат = МоментСоздания.ВДатаВремя({UTC})
;
Различие между значениями «Момент» и «ДатаВремя»
Момент удобно использовать для программных целей, но не очень удобно использовать для представления информации пользователю. Пользователь привык воспринимать дату и время в таком виде, чтобы сразу понимать, какие дата и время там, где человек сейчас находится (в своей временной зоне).
Такие дату и время мы будем называть локальными датой и временем. Локальные дата и время — это абсолютный момент времени, приведенный к конкретной временной зоне. Чтобы использовать локальные дату и время, предназначен тип ДатаВремя. Нужно понимать, что л окальные дата и время не имеют смысла без указания конкретной временной зоны.
Рассмотрим пример. Имеется некоторое событие, которое произошло в Москве, 1 марта 2025 года в 13 часов ровно. Для этого события значение типа Момент будет равно 2025-03-01 10:00:00.000 Z. Если это же локальное время представить в других временных зонах, то мы получим следующие значения:
- Временная зона UTC-3 (Дания (Гренландия), Бразилия):
2025-03-01 07:00:00.000.
- Временная зона UTC-1 (Азорские острова):
2025-03-01 09:00:00.000.
- Временная зона UTC+1 (Австрия, Германия):
2025-03-01 11:00:00.000.
- Временная зона UTC+3 (Россия (Москва), Белоруссия):
2025-03-01 13:00:00.000.
Последовательность можно продолжить и для других временных зон.
В этом примере видна разница между локальными датой и временем и абсолютным моментом времени. Таким образом, можно сделать следующий вывод: если нужно сравнить различные моменты времени в некоторой совпадающей системе координат, следует использовать значение типа Момент (абсолютный момент времени). Если же нужно отобразить значение момента времени пользователю, следует использовать з начение типа ДатаВремя (локальные дату и время). При этом нужно иметь в виду, что тип ДатаВремя не хранит временную зону, для которой сформировано это значение. Поэтому сравнивать значения типа ДатаВремя имеет смысл только в том случае, когда оба сравниваемых значения заданы для одной временной зоны.
См. также