Тип «ДатаВремя»
Тип для работы с датой и временем. Значение типа ДатаВремя может быть задано следующими способами:
- С помощью литерала вида
ДатаВремя{\<дата\>\<разделитель_сегментов\>\<время\>}
, где\<дата\>
имеет формат:гггг-ММ-дд
.\<разделитель_сегментов\>
— символ неразрывного пробелаT
.\<время\>
имеет формат:ЧЧ:мм(:cc(.ССС)?)?
.
ДатаВремя{2019-05-01 23:30:40}
В примере ниже литерал со значениями даты и времени помещается в переменную, после чего для него вызывается методПредставление()
, в который как аргумент передается форматная строка:
Результат:метод Скрипт() пер ДатаСоздания = ДатаВремя{2019-05-01 23:30:40} пер ДатаСозданияФормат = ДатаСоздания.Представление("дд ММММ гггг', 'ЧЧ:мм:сс") Консоль.Записать(ДатаСозданияФормат) ;
Значение по умолчанию:01 мая 2019, 23:30:40
0001-01-01 00:00:00.000
. - С помощью конструктора типа, в котором дата и время указываются в виде строки:
ДатаВремя(Представление: Строка)
. Формат строки см. выше, в описании литерала. В примере ниже в переменную помещается новый объект типаДатаВремя
, как аргумент для которого передается строка соответствующего формата:метод Скрипт() пер ДатаСоздания = новый ДатаВремя("2019-05-01 23:30:40") пер ДатаСозданияФормат = ДатаСоздания.Представление() Консоль.Записать(ДатаСозданияФормат) ;
- С помощью конструктора типа, в котором составляющие даты и, опционально, времени
вводятся отдельными параметрами конструктора:
ДатаВремя(Год: Число, Месяц: Число, День: Число, Час: Число, Минута: Число, Секунда: Число, Миллисекунда: Число = 0)
. При вводе только даты параметры времени можно ввести потом с помощью специальных методов. Пример:ДатаВремя(2019,05,01,23:30:40)
- С помощью конструктора типа, в который передаются литералы типов
Дата и Время:
ДатаВремя(Дата: Дата, Время: Время)
. Пример:ДатаВремя(Дата{2019-05-01},Время{23:30:40})
- Из значения типа Момент с помощью метода
ВДатаВремя(). При этом необходимо указать, для какого часового
пояса должно быть приведено время из значения Момент. Если данный
экземпляр является значением по умолчанию типа
Момент
(0001.01.01 00:00:00.000Z
), будет возвращено значение по умолчанию для типаДатаВремя
(0001.01.01 00:00:00.000
). Пример:метод Скрипт() пер МоментСоздания = новый Момент(2019, 05, 01, 23, 30, 40, 345, ЧасовойПояс{UTC+3}) пер МоментСозданияФормат = МоментСоздания.ВДатаВремя(ЧасовойПояс{UTC}) Консоль.Записать(МоментСозданияФормат) ;
Форматирование даты и времени
Тип ДатаВремя является потомком типа
Форматируемое, а значит, для значений этого типа
поддерживается возможность указывать форматную строку для получения нужного
представления значения данного типа. Для форматирования даты и времени используется
встроенный метод Представление()
, который принимает как аргумент
указанный формат и возвращает строку с датой и временем в этом формате.
Пример
ДатаСоздания
типа ДатаВремя
вызывается метод Представление()
, который позволяет представить ее
значение в виде строки соответствующего формата. Результат форматирования помещается
в переменную ДатаСозданияФормат
и выводится в
консоль:метод Скрипт()
пер ДатаСоздания = новый ДатаВремя(2019, 5, 1, 23, 30, 40)
пер ДатаСозданияФормат = ДатаСоздания.Представление("дд ММММ гггг ЧЧ:мм:сс")
Консоль.Записать(ДатаСозданияФормат)
;
Результат:01 мая 2019 23:30:40
Представление()
не передать аргумент, то будет использоваться
значение по умолчанию: "дд.ММ.гггг ЧЧ:мм:сс"
.Экранирование
'
(одинарная кавычка). Таким образом,
символы, которые надо отделить от переменных формата, заключаются в одинарные
кавычки. Например:метод Скрипт()
пер ДатаСоздания = новый ДатаВремя(2019, 5, 1, 23, 30, 40)
пер ДатаСозданияФормат = ДатаСоздания.Представление("дд ММММ гггг', 'ЧЧ:мм:сс")
Консоль.Записать(ДатаСозданияФормат)
;
Результат:01 мая 2019, 23:30:40
', '
), которые
разделяют дату и время.Интерполяция
Для интерполяции используется метод Шаблон
типа
Строки
, который принимает как аргументы строку и переменные
объекта, которые нужно вставить в эту строку. Индекс объектов отсчитывается с нуля,
т. е. с %0.
Синтаксис:
Строки.Шаблон("Текст шаблона %Индекс1", объект с переменными).
Если объектов несколько, то передается список объектов:
Строки.Шаблон("Текст шаблона %Индекс1 ... %Индекс2 ... %ИндексN", [Объект1,
Объект2, ..., ОбъектN]).
метод Скрипт()
пер ДатаНачала = новый ДатаВремя(2019, 5, 21, 12, 00, 00)
пер ДатаОкончания = новый ДатаВремя(2019, 5, 24, 23, 59, 59)
пер ДатаНачалаФормат = ДатаНачала.Представление("дд ММММ")
пер ДатаОкончанияФормат = ДатаОкончания.Представление("дд ММММ гггг")
пер Период = Строки.Шаблон("С %0 по %1 года", [ДатаНачалаФормат, ДатаОкончанияФормат])
Консоль.Записать(Период)
;
Результат:С 21 мая по 24 мая 2019 года
Формат можно включить непосредственно в саму строку шаблона с переменными:
Синтаксис:
Строки.Шаблон("Текст шаблона %Индекс1{Формат}", объект с
переменными).
Строки.Шаблон("С %0{дд ММММ} по %1{дд ММММ гггг} года", [ДатаНачала, ДатаОкончания])
Результат будет тем же самым.Список доступных форматов
- г
- Год, в диапазоне от 0 до 99, без ведущего нуля.
- гг
- Год, в диапазоне от 00 до 99, с ведущим нулем.
- гггг
- Год в виде четырехзначного числа.
- К
- Квартал в формате 1-4.
- М
- Месяц, в диапазоне от 1 до 12, без ведущего нуля.
- ММ
- Месяц, в диапазоне от 01 до 12, с ведущим нулем.
- МММ
- Сокращенное название месяца.
- ММММ
- Полное название месяца.
- д
- День месяца, в диапазоне от 1 до 31, без ведущего нуля.
- дд
- День месяца, в диапазоне от 01 до 31, с ведущим нулем.
- ддд
- Сокращенное название дня недели.
- дддд
- Полное название дня недели.
- Д
- Порядковый номер дня в неделе.
- ДД
- Порядковый номер дня в году.
- ч
- Час в 12-часовом формате, в диапазоне от 1 до 12, без ведущего нуля.
- чч
- Час в 12-часовом формате, в диапазоне от 01 до 12, с ведущим нулем.
- Ч
- Час в 24-часовом формате, в диапазоне от 0 до 23, без ведущего нуля.
- ЧЧ
- Час в 24-часовом формате, в диапазоне от 00 до 23, с ведущим нулем.
- м
- Минуты, в диапазоне от 0 до 59, без ведущего нуля.
- мм
- Минуты, в диапазоне от 00 до 59, с ведущим нулем.
- с
- Секунды, в диапазоне от 0 до 59, без ведущего нуля.
- сс
- Секунды, в диапазоне от 00 до 59, с ведущим нулем.
- С
- Миллисекунды с точностью до сотен, в диапазоне от 0 до 9.
- СС
- Миллисекунды с точностью до десятков, в диапазоне от 0 до 99.
- ССС
- Миллисекунды с точностью до единиц, в диапазоне от 0 до 999.