Применить к
Справочное руководство по объектам "Дата/Время"
Who can use this?
Plans:
- Bridge by Smartsheet
Объект "Дата/Время"
В этой статье описываются данные, возвращаемые большинством модулей типа "Дата/Время".
Эта структура в формате JSON состоит из свойств, представляющих отдельный момент времени. Ниже приведён пример такой структуры. Большинство свойств понятны без комментариев; пояснения приведены в таблице ниже.
Свойство |
Тип |
Описание |
---|---|---|
years |
Число |
Четырёхзначное число, обозначающее год. |
months |
Число |
Обозначает месяц. Январю соответствует значение 1. |
date |
Число |
Обозначает день месяца. |
hours |
Число |
Обозначает часы. |
minutes |
Число |
Обозначает минуты. |
seconds |
Число |
Обозначает секунды. |
milliseconds |
Число |
Обозначает миллисекунды. |
offset |
Текстовая строка |
Разница по отношению к часовому поясу UTC в формате ±ЧЧ:мм. |
iso |
Текстовая строка |
Дата/время в формате стандарта ISO-8601. Пример: ГГГГ-ММ-ДДТЧЧ:мм:ссZ |
utc |
Текстовая строка |
Дата/время в часовом поясе UTC в формате стандарта ISO-8601. |
unix |
Число |
Число, представляющее временную метку UNIX. |
isValid |
Логическое значение |
Логическое значение, показывающее, является ли дата/время действительной или нет. |
Если обработка объекта "Дата/Время" заканчивается сбоем, возвращается недействительный объект "Дата/Время".
Пример недействительного объекта даты/времени:
{
"isValid": false
}
Объект длительности
В этой статье описываются данные, возвращаемые модулем Compare Date/Time (Сравнение даты/времени).
Эта структура в формате JSON состоит из свойств, представляющих отрезок между двумя моментами времени. Ниже приведён пример такой структуры. Большинство свойств понятны без комментариев; пояснения приведены в таблице ниже.
Пример объекта длительности
{
"years": 2,
"months": 2,
"days": 2,
"hours": 2,
"minutes": 2,
"seconds": 2,
"milliseconds": 0,
"iso": 'PT19058H2M2S',
"humanized": '2 years',
"isDuration": true,
"isValid": true,
"in": {
"years": 2,
"months": 26,
"weeks": 113,
"days": 794,
"hours": 19058,
"minutes": 1143482,
"seconds": 68608922,
"milliseconds": 68608922000
}
}
Свойство |
Тип |
Описание |
---|---|---|
years |
Число |
Целое число, представляющее количество лет, прошедших между двумя датами. |
months |
Число |
Целое число, представляющее количество месяцев (после вычисления количества лет между двумя датами). |
days |
Число |
Целое число, представляющее количество дней (после вычисления количества месяцев и лет между двумя датами). |
hours |
Число |
Целое число, представляющее количество часов (после вычисления количества дней, месяцев и лет между двумя датами). |
minutes |
Число |
Целое число, представляющее количество минут (после вычисления количества часов, дней, месяцев и лет между двумя датами). |
seconds |
Число |
Целое число, представляющее количество секунд (после вычисления количества минут, часов, дней, месяцев и лет между двумя датами). |
milliseconds |
Число |
Целое число, представляющее количество миллисекунд (после вычисления количества секунд, минут, часов, дней, месяцев и лет между двумя датами). |
iso |
Текстовая строка |
Длительность в формате стандарта ISO-8601. |
humanized |
Текстовая строка |
Строка, представляющая время в человекочитаемом формате. Аналогична ответу модуля Format Date/Time (Формат даты/времени) с относительным форматированием. Например, "2 года". |
isDuration |
Логическое значение |
Логическое значение, указывающее, является ли этот объект длительностью или нет. Оно будет истинно, если объект действителен. |
isValid |
Логическое значение |
Логическое значение, показывающее, является ли дата/время действительной или нет. |
in |
Объект |
Каждое значение в этом объекте аналогично свойству в этой таблице, но игнорирует все другие единицы времени. Пример: ровно 2 года между двумя датами — это 24 месяца. |
Если обработка объекта "Дата/Время" заканчивается сбоем (например, не удаётся обработать вводные данные), возвращается недействительный объект "Дата/Время". Это выглядит следующим образом:
Пример недействительного объекта длительности
{
"isValid": false
}
Маркеры формата даты/времени
Маркеры формата даты/времени могут использоваться для представления определённого фрагмента даты в текстовой строке. Строка, содержащая эти маркеры, может содержать и другие символы. Например, "11 марта 1952 года" может быть представлена как "Д-е ММММ ГГГГ года".
Маркер |
Вывод |
|
---|---|---|
Месяц |
M |
1 2 ... 11 12 |
Mo |
1-й 2-й ... 11-й 12-й |
|
ММ |
01 02 ... 11 12 |
|
МММ |
Янв Фев ... Ноя Дек |
|
ММММ |
Январь Февраль ... Ноябрь Декабрь |
|
Квартал |
Q |
1 2 3 4 |
Qo |
1-й 2-й 3-й 4-й |
|
День месяца |
D |
1 2 ... 30 31 |
Do |
1-е 2-е ... 30-е 31-е |
|
DD |
01 02 ... 30 31 |
|
День года |
DDD |
1 2 ... 364 365 |
DDDo |
1-й 2-й ... 364-й 365-й |
|
DDDD |
001 002 ... 364 365 |
|
День недели |
d |
0 1 ... 5 6 |
do |
0-й 1-й ... 5-й 6-й |
|
dd |
Вс Пн ... Пт Сб |
|
ddd |
Вос Пон ... Пят Суб |
|
dddd |
Воскресенье Понедельник ... Пятница Суббота |
|
День недели (локальный формат) |
e |
0 1 ... 5 6 |
День недели (ISO) |
E |
1 2 ... 6 7 |
Неделя года |
w |
1 2 ... 52 53 |
wo |
1-я 2-я ... 52-я 53-я |
|
ww |
01 02 ... 52 53 |
|
Неделя года (ISO) |
W |
1 2 ... 52 53 |
Wo |
1-я 2-я ... 52-я 53-я |
|
WW |
01 02 ... 52 53 |
|
Год |
YY |
70 71 ... 29 30 |
YYYY |
1970 1971 ... 2029 2030 |
|
Y |
1970 1971 ... 9999 +10000 +10001 Примечание. Это соответствует стандарту ISO 8601 для дат после 9999 года. |
|
Неделя, год |
gg |
70 71 ... 29 30 |
gggg |
1970 1971 ... 2029 2030 |
|
Неделя, год (ISO) |
GG |
70 71 ... 29 30 |
GGGG |
1970 1971 ... 2029 2030 |
|
AM/PM |
A |
AM PM |
а |
am pm |
|
Час |
H |
0 1 ... 22 23 |
HH |
00 01 ... 22 23 |
|
h |
1 2 ... 11 12 |
|
hh |
01 02 ... 11 12 |
|
k |
1 2 ... 23 24 |
|
kk |
01 02 ... 23 24 |
|
Минута |
m |
0 1 ... 58 59 |
mm |
00 01 ... 58 59 |
|
Секунда |
s |
0 1 ... 58 59 |
ss |
00 01 ... 58 59 |
|
Дробная секунда |
S |
0 1 ... 8 9 |
SS |
00 01 ... 98 99 |
|
SSS |
000 001 ... 998 999 |
|
SSSS ... SSSSSSSSSSS |
000[0..] 001[0..] ... 998[0..] 999[0..] |
|
Часовой пояс |
z или zz |
EST CST ... MST PST |
Z |
-07:00 -06:00 ... +06:00 +07:00 |
|
ZZ |
-0700 -0600 ... +0600 +0700 |
|
Временная метка Unix |
X |
1360013296 |
Временная метка UNIX в миллисекундах |
x |
1360013296123 |
Модуль Check Date/Time (Проверка даты/времени)
Модуль Check Date/Time проверяет вводимую дату на соответствие заданным условиям и соответствующим образом направляет рабочий процесс.
Самый простой способ использовать его — сослаться на весь объект типа "Дата/время".
Поля модуля Check Date/Time
- Date (Дата). Требуемый входной параметр, по которому будет производиться проверка. В качестве входных данных может использоваться строка формата ISO-8601, временная метка Unix или структурированный объект даты/времени, выводимый другим модулем даты/времени.
- Condition (Условие). Укажите условную операцию для проверки введённой даты. Используйте указанные ниже параметры.
- Day of Week (День недели). Направляет рабочий процесс по пути "Успешно", если дата совпадает с одним из выбранных дней.
- Is Before another Date (До другой даты). Направляет рабочий процесс по пути "Успешно", если дата предшествует указанной контрольной дате или совпадает с ней.
- Is After another Date (После другой даты). Направляет рабочий процесс по пути "Успешно", если дата идёт за указанной контрольной датой или совпадает с ней.
- Is Between two Dates (Между двумя датами). Направляет рабочий процесс по пути "Успешно", если дата располагается между двумя указанными контрольными датами или совпадает с одной из них.
- Is a Leap Year (Является ли год високосным). Направляет рабочий процесс по пути "Успешно", если дата является високосным годом. Если дата не относится к високосному году или не содержит года, например, если был введён только месяц или ссылка на него, рабочий процесс будет направлен по пути "Сбой".
Контрольные даты
Эти данные требуются, если вы хотите проверить, находится ли дата до/после другой даты или между несколькими контрольными датами. В качестве входных данных может использоваться строка формата ISO-8601, временная метка Unix или структурированный объект даты/времени, выводимый другим модулем даты/времени.
Включение контрольных дат
При использовании контрольных дат они по умолчанию исключаются из диапазона допустимых значений (например, "ранее, но не равно"). Если этот параметр будет иметь значение true, контрольные даты будут входить в диапазон допустимых значений (например, "ранее или равно").
Модуль Compare Date/Time (Сравнение даты/времени)
Модуль Compare Date/Time сравнивает два объекта даты/времени, возвращая абсолютную разницу между ними.
Поля модуля Compare Date/Time
- First Date (Первая дата). Требуемая вводная дата для сравнения. В качестве входных данных может использоваться строка формата ISO-8601, временная метка Unix или структурированный объект даты/времени, выводимый другим модулем даты/времени.
- Second Date (Вторая дата). Требуемая вводная дата, с которой будет выполняться сравнение. В качестве входных данных может использоваться строка формата ISO-8601, временная метка Unix или структурированный объект даты/времени, выводимый другим модулем даты/времени.
- Include End Date (Включить конечную дату). Если этот пункт выбран, вторая дата ввода будет включена в расчёт. Пример: длительность "С понедельника по пятницу" будет рассчитана как 5 дней.
Возвращаемые данные модуля Compare Date/Time
Если модуль будет обработан успешно, он вернёт структурированный объект длительности.
Модуль Current Date/Time (Текущая дата/время)
Модуль Current Date/Time возвращает текущий момент времени в виде структурированного объекта даты/времени, с которым можно произвести различные действия, в т. ч. форматировать его.
Поля модуля Current Date/Time
- Offset (Смещение). Смещение входных данных по отношению к часовому поясу UTC. Можно установить почасовое смещение от -12:00 до +12:00 часов, а можно получить больший контроль над смещением относительно пояса UTC с помощью следующих опций.
- None (Нет). Входные данные будут обработаны "как есть". Если в строке ввода не определено смещение, то оно не будет применено. Если вы обрабатываете строку, содержащую смещение (например, строку формата ISO-8601), то смещение будет установлено на то же значение, что и смещение строки. Например, 2017-07-02T21:30:00-07:00 будет иметь смещение на -07:00 часов.
- Timezone Offset (Смещение в формате часового пояса). Выберите часовой пояс для расчёта смещения относительно UTC. При этом учитывается переход на летнее время, который может происходить в определённых часовых поясах.
- Lat/Long Offset (Смещение по широте/долготе). Укажите местоположение в формате широты и долготы, разделённых запятой (,). При этом будет учитываться переход на летнее время. Например, 47.650499,-122.350070 — это Америка/Лос-Анджелес; смещение будет равно-08:00 зимой и -07:00 летом.
- Custom Offset (Пользовательское смещение). Задайте собственное значение смещения в формате ±ЧЧ:мм. Пример: Плюс восемь с половиной часов: +08:30
Возвращаемые данные модуля Current Date/Time
Если входная строка обработана успешно, модуль возвращает структурированный объект даты/времени.
Модуль Format Date/Time (Форматирование даты/времени)
Модуль Format Date/Time форматирует структурированный объект даты/времени в виде любой строки, заданной пользователем.
Поля модуля Format Date/Time
- Date (Дата). Требуемые входные данные, которые нужно отформатировать в виде строки. В качестве входных данных может использоваться строка формата ISO-8601, временная метка Unix или структурированный объект даты/времени, выводимый другим модулем даты/времени.
- Format (Формат). Формат возвращаемых данных. Выберите один из типовых вариантов, используйте маркеры даты/времени для создания собственного формата или укажите другой объект даты/времени для относительного форматирования.
Возвращаемые данные модуля Format Date/Time
Будут показаны следующие форматы для даты "11 марта 1952 года в 8:15 утра".
ISO-8601
Стандартный формат ISO-8601 (YYYY-MM-DDTHH:mm:ssZ): 1952-03-11T08:15:00+00:00
YYYY-MM-DD
1952-03-11
MM/DD/YYYY
03/11/1952
DD/MM/YYYY
11/03/1952
MM/DD
03/11
DD/MM
11/03
HH:mm
08:15
HH:mm:ss
08:15:00
Индивидуальный формат
Используйте маркеры формата даты/времени для создания пользовательской строки формата. Также допускаются символы, не являющиеся маркерами. Do MMMM YYYY — 11-е марта 1952
Относительный формат
Укажите другой объект даты/времени для относительного форматирования входных данных. Единица времени округляется до наибольшей единицы. Пример. Введите строку даты/времени в формате ISO-8601 "1952-03-13T09:15:00+00:00", и в результате вы получите "2 дня назад" вместо "2 дня и 23 часа назад". Это простой способ получить дату и время в человекочитаемом формате; если вам нужна большая детализация, см. раздел, посвящённый модулю Compare Date/Time и возвращаемому объекту длительности.
Модуль Manipulate Date/Time (Действия с датой/временем)
Модуль Manipulate Date/Time позволяет выполнять действия со структурированным объектом даты/времени, добавляя, вычитая или подставляя единицы времени.
Поля модуля Manipulate Date/Time
- Operation (Операция). Выберите действие: прибавление, вычитание или подстановка единиц времени.
- Add (Прибавить). Прибавка единиц времени к входной дате.
- Subtract (Вычесть). Вычитание единиц времени из входной даты.
- Set (Подставить). Подстановка единиц времени во входную дату.
- Date (Дата). Требуемые входные данные, с которыми будут совершаться действия. В качестве входных данных может использоваться строка формата ISO-8601, временная метка Unix или структурированный объект даты/времени, выводимый другим модулем даты/времени.
- Years (Годы). Количество лет, которое нужно прибавить или отнять от вводимой даты. Если используется операция Set, то устанавливается год (например, 1952).
- Months (Месяцы). Количество месяцев, которое нужно прибавить или отнять от вводимой даты. Если используется операция Set, то устанавливается месяц (1–12).
- Days (Дни). Количество дней, которое нужно прибавить или отнять от вводимой даты. Если используется операция Set, то устанавливается число месяца.
- Hours (Часы). Количество часов, которое нужно прибавить или отнять от вводимой даты. Если используется операция Set, то устанавливается час (0–23).
- Minutes (Минуты). Количество минут, которое нужно прибавить или отнять от вводимой даты. Если используется операция Set, то устанавливается число минут (0–59).
- Seconds (Секунды). Количество секунд, которое нужно прибавить или отнять от вводимой даты. Если используется операция Set, то устанавливается число секунд (0–59).
- Duration (Длительность). Помимо добавления или вычитания единицы времени, можно также добавить или вычесть его длительность. Её можно представить в виде строки стандарта ISO-8601 или объекта длительности, возвращённого модулем сравнения даты/времени.
Возвращаемые данные модуля Manipulate Date/Time
Если входная строка обработана успешно, модуль возвращает структурированный объект даты/времени.
Модуль Parse Date/Time (Обработать значение даты/времени)
Модуль Parse Date/Time обрабатывает дату, чтобы получить структурированный объект даты/времени, с которым можно произвести различные действия, в т. ч. форматировать его.
Наряду с человекочитаемыми датами, этот модуль может обрабатывать строки в формате ISO-8601, RFC 2822, временные метки Unix или выходные данные другого модуля Parse Date/Time. Если входные данные недействительны, то будет возвращён объект Invalid Date/Time.
Поля модуля Parse Date/Time
- Date (Дата). Требуемые вводные данные, которые должны быть преобразованы в структурированный объект даты/времени. В качестве входных данных может использоваться любая человекочитаемая строка, дата в формате ISO-8601 или RFC 2822, временная метка Unix или выходные данные другого модуля Parse Date/Time.
- Locale (Местоположение). Необязательные входные данные. Указывают формат даты/времени, используемый в стране или регионе. Используется для различения схожих форматов. Например, дата 5 апреля 2017 года может быть представлена как "04/05/2017" в США и как "05/04/2017" в Великобритании. Даты в таком формате нетрудно спутать, поэтому рекомендуется указывать требуемое местоположение. По умолчанию используется американский формат (en).
- UTC Offset (Смещение относительно UTC). Смещение входных данных по отношению к часовому поясу UTC. Можно установить почасовое смещение от -12:00 до +12:00 часов, а можно получить больший контроль над смещением относительно пояса UTC с помощью следующих опций.
- None (Нет). Входные данные будут обработаны "как есть". Если в строке ввода не определено смещение, то оно не будет применено. Если вы обрабатываете строку, содержащую смещение (например, строку формата ISO-8601), то смещение будет установлено на то же значение, что и смещение строки. Например, 2017-07-02T21:30:00-07:00 будет иметь смещение на -07:00 часов.
- Timezone Offset (Смещение в формате часового пояса). Выберите часовой пояс для расчёта смещения относительно UTC. При этом учитывается переход на летнее время, который может происходить в определённых часовых поясах.
- Lat/Long Offset (Смещение по широте/долготе). Укажите местоположение в формате широты и долготы, разделённых запятой (,). При этом будет учитываться переход на летнее время. Например, 47.650499,-122.350070 — это Америка/Лос-Анджелес; смещение будет равно-08:00 зимой и -07:00 летом.
- Custom Offset (Пользовательское смещение). Задайте собственное значение смещения в формате ±ЧЧ:мм. Пример: Плюс восемь с половиной часов: +08:30
Возвращаемые данные модуля Parse Date/Time
Если входная строка обработана успешно, модуль возвращает структурированный объект даты/времени.
Модуль Round Date/Time (Округление даты/времени)
Модуль Round Date/Time возвращает начало или конец указанной единицы времени структурированного объекта даты/времени.
Поля модуля Round Date/Time
- Start/End (Начало/окончание). Округляет входные данные до начала или конца указанного отрезка времени.
- Start (Начало). Округлить до начала отрезка времени. Например, "8:15" превратится в "8:00".
- End (Окончание). Округлить до окончания отрезка времени. Например, "8:15" превратится в "8:59".
- Date (Дата). Требуемое входное значение, которое будет округлено в большую или меньшую сторону на указанную единицу времени. В качестве входных данных может использоваться строка формата ISO-8601, временная метка Unix или структурированный объект даты/времени, выводимый другим модулем даты/времени.
- Unit of Time (Единица времени). Отрезок времени, который будет округляться в большую или меньшую сторону. Используйте указанные ниже параметры.
- Year (Год)
- Quarter (Квартал)
- Month (Месяц)
- Week (Неделя)
- Day (День)
- Hour (Час)
- Minute (Минута)
First Day of Week (Первый день недели)
В разных странах начало недели отсчитывается по-разному. Если в качестве единицы времени выбрана неделя, этот параметр позволяет установить, какой день считается началом недели.
Возвращаемые данные модуля Round Date/Time
Если входная строка обработана успешно, модуль возвращает структурированный объект даты/времени.