На этот раз я собираюсь начать углубляться в функции даты и времени Power Automate. Дата и время — одна из самых болезненных частей работы с потоками.
Причина в том, что иногда значение DateTime — это DateTime, иногда это число, а иногда это строка. Обычно это строка… в основном. И в любой момент времени трудно определить, что это за значение. Затем добавьте к этому множество различных форматов, которые значение DateTime может принимать во всех различных внешних системах, и вы получите еще один уровень сложности. И для еще одного уровня сложности мы добавим вопрос временных зон.
В этом посте мы начнем с простого: Добавление даты и времени.
addDays, addHours, addMinutes, addSeconds
Все эти четыре функции работают совершенно одинаково. Каждая функция принимает три входных параметра. Первые два параметра, метка времени и значение, являются обязательными. Третий параметр, формат, является необязательным.
Функции представлены следующим образом:
addDays('<timestamp>', <value>, '<format>')
addHours('<timestamp>', <value>, '<format>')
addMinutes('<timestamp>', <value>, '<format>')
addSeconds('<timestamp>', <value>, '<format>')
Timestamp — это входное значение, DateTime, с которого вы начинаете работу. Оно передается в виде строки.
Параметр value — это сумма, которую нужно добавить в днях, часах, минутах или секундах. Это значение может быть положительным или отрицательным. Функции «вычитания» не существует, поэтому если вам нужно сделать обратное действие, используйте функции сложения с отрицательным значением.
По умолчанию для временной метки принят формат ISO 8601, который представляется как «yyyy-MM-ddTHH:mm:ss.fffffffK».
- yyyy представляет год: 2022
- ММ представляет месяц. При всех значениях однозначные значения имеют ведущий ноль: 08
- dd представляет день месяца: 12
- T — это заполнитель, который находится между датой и временем.
- HH представляет часы в военном времени: 14
- mm обозначает минуты: 00
- ss — секунды: 05
- fffffffff представляет микросекунды: 0051332
- K представляет часовой пояс. UTC представлено буквой Z
Если значение временной метки передается не в этом формате (например, в формате «MM/dd/yyy» или в каком-то другом), вам нужно указать этот формат в этом параметре. Вы можете передать один из стандартных форматов или определить собственный формат. Подробнее о форматах дат вы можете прочитать в документации здесь.
Выходной результат всегда имеет тот же формат, что и входная временная метка. Если вам нужно изменить формат вывода, вам придется передать его в функцию formatDateTime, о которой я расскажу в другой статье.
Некоторые примеры:
addDays('2022-08-11T12:00:00.0000001Z', 1) // returns '2022-08-12T12:00:00.0000001Z'
addHours('2022-08-11T12:00:00.0000000Z', 3) // returns '2022-08-11T15:00:00.0000000Z'
addMinutes('2022-08-11T12:00:00Z', 13) // returns '2022-08-11T12:13:00Z'
addToTime
Функция addToTime — это немного более общая функция. Она позволяет взять метку времени и прибавить или отнять от нее количество секунд, минут, часов, дней, недель, месяцев или лет. Схема работы следующая:
addToTime('<timestamp>', <interval>, '<unit>', 'format')
Как и в других функциях «добавить», формат является необязательным параметром. Остальные три параметра являются обязательными.
Временная метка — точно такой же параметр, как и в других функциях. Интервал — это количество времени, которое нужно добавить к метке времени. Это может быть положительное или отрицательное значение.
Unit указывает функции, какой тип интервала нужно добавить. Допустимыми значениями являются: «секунда», «минута», «час», «день», «неделя», «месяц», «год».
Пример:
addToTime('2022-08-11', 10, 'Year') // returns '2032-08-11'
Заключение
В Power Automate есть много возможностей для работы с датами и временем, и мы только начали погружаться в эту неразбериху. В следующий раз я более подробно рассмотрю форматирование и парсинг.
The post Функциональная пятница: Добавление даты и времени appeared first on Barret Codes.