Перейти к основному содержимому
Версия: 7.0

Time

Timeсистемный модуль, собирающий свойства, действия и классы для работы со временем: получение текущей даты-времени, преобразования между классами времени, извлечение компонентов даты, арифметика над датами и временем, интервалы, календарные классы (месяцы, дни недели). Подключается через REQUIRE Time (System тянется автоматически).

В сигнатурах ниже используются встроенные классы времени DATE, TIME, DATETIME (без часового пояса) и ZDATETIME (с часовым поясом), а также INTEGER / LONG для счёта дней, секунд, миллисекунд и т. п.

Текущее значение

СвойствоЧто возвращает
currentDateTime[]текущие DATETIME (без часового пояса), округлённые до секунды
currentDateTime[INTEGER]то же с точностью до указанного числа долей секунды
currentDateTimeMillis[]текущие DATETIME, округлённые до миллисекунды
currentZDateTime[] / [INTEGER]текущие ZDATETIME (с часовым поясом), аналогично
currentDate[]текущая DATE; снимок, обновляется не чаще раза в сутки
currentTime[] / [INTEGER]текущее TIME локального сервера
currentDay[] / currentMonth[] / currentYear[]отдельные компоненты currentDate
currentHour[] / currentMinute[] / currentSecond[]отдельные компоненты currentTime
currentDateTimeSnapshot[] / currentZDateTimeSnapshot[]хранимый снимок текущей даты-времени
currentTimeText[]текущая дата-время как TEXT в формате YYYYMMDDHH24MISSMS
dateDiffersCurrent[DATE]признак, что дата отлична от текущей

Преобразование

СвойствоЧто делает
toDate[DATETIME] / toTime[DATETIME]разбор DATETIME на дату и время
toDateTime[DATE] / toDateTime[DATE, TIME]сборка DATETIME из даты (и опционально времени)
toZDateTime[DATE] / toDateTime[LONG] / toZDateTime[LONG]приведение между DATE, LONG Unix-секунд (несмотря на имя параметра millis в исходнике) и DATETIME / ZDATETIME
toSeconds[TIME] / toTime[INTEGER]взаимный перевод TIME и числа секунд
toDateFormat[STRING, STRING]разбор DATE из строки по указанному формату
toDateTimeFormat[STRING, STRING]разбор DATETIME из строки по указанному формату
toDateISO[DATE]форматирование в 'YYYY-MM-DD'
toDateDDMMYY[DATE] / toDateDDMMYYYY[DATE]форматирование в 'DD.MM.YY' / 'DD.MM.YYYY'
toMilliseconds[DATETIME]resultMilliseconds[]перевод DATETIME в миллисекунды (запись в локальное свойство)
getMilliSeconds[ZDATETIME] / getSeconds[ZDATETIME]UNIX-время в миллисекундах / секундах

Извлечение компонентов

СвойствоЧто возвращает
extractYear[DATE] / extractMonthNumber[DATE] / extractDay[DATE] / extractDOY[DATE]компоненты даты в виде INTEGER
extractHour[TIME] / extractMinute[TIME] / extractSecond[TIME]компоненты времени
extractWeek[DATE] / extractWeekZeroBased[DATE]номер недели по ISO 8601 (последний с обработкой первых дней года)
extractDOWNumber[DATE]номер дня недели в формате PG (0 = воскресенье)
extractDOW[DATE] / extractDOWName[DATE]день недели как объект DOW / его название
extractMonth[DATE] / extractMonthName[DATE]месяц как объект Month / его название

Арифметика

СвойствоЧто делает
sum[DATE, INTEGER]прибавить N дней к дате
sumMonth[DATE, INTEGER] / sumYear[DATE, INTEGER]прибавить N месяцев / лет
subtract[DATE, LONG]вычесть N дней из даты
sumDay[DATETIME, LONG] / subtractDay[DATETIME, LONG]прибавить / вычесть дни от DATETIME
sumMinutes[…] / sumSeconds[…]прибавить минуты / секунды; перегружены для TIME, DATETIME, ZDATETIME
subtractSeconds[…]вычесть секунды или вернуть разницу в секундах между двумя TIME, DATETIME, ZDATETIME
firstDayOfMonth[DATE] / lastDayOfMonth[DATE]первый / последний день месяца
sumWeekFrom[DATE, INTEGER] / sumWeekTo[DATE, INTEGER]смещение на N полных недель от начала / до конца
daysBetweenDates[DATE, DATE] / daysInclBetweenDates[DATE, DATE]число дней между датами (с включением и без)
secondsBetweenDates[DATETIME, DATETIME]число секунд между двумя моментами
dateTimeToDateTime[DATE, TIME]сборка DATETIME через приведение текста
dateFromYearWeekDay[INTEGER, INTEGER, INTEGER]сборка даты по году, номеру ISO-недели и дню недели
distanceDOWDOW[DOW, DOW]расстояние от одного дня недели до другого вперёд

Итерация и интервалы

СвойствоЧто делает
iterate[DATE, DATE, DATE]рекурсивная развёртка диапазона дат: даёт все даты от from до to включительно
iterate[DATE, INTERVAL[DATE]]то же по интервалу дат
interval[DATE, DATE] / from[INTERVAL[DATE]] / to[INTERVAL[DATE]]сборка интервала из пары дат и обратный разбор
interval[…] / from[…] / to[…]то же для TIME, DATETIME, ZDATETIME через соответствующие классы INTERVAL[…]

Календарные классы и формы

Month и DOW — встроенные классы, описывающие месяцы (12 объектов) и дни недели (7 объектов). Содержат свойства number[Month], name[Month], number[DOW], numberM[DOW] (нумерация с понедельника), name[DOW]. Поиск по номеру: month[INTEGER], DOW[INTEGER]. Формы months и DOWs показывают эти классы как справочники.

DateTimePickerRanges и DateTimeIntervalPickerRanges — статические классы с готовыми наборами шорткатов (rangeToday, rangeYesterday, rangeLast7Days и т. п.) для выбора в UI-пикерах одиночной даты и интервала.

Связано

  • System modules — общий список модулей платформы.
  • Built-in classes — описание классов DATE, TIME, DATETIME, ZDATETIME, INTERVAL[…].
  • Scheduler — запуск действий по расписанию.