formatdate Функция
formatdate преобразует метку времени в другой формат времени.
formatdate(spec, timestamp)
В языке OpenTofu метки времени обычно представлены в виде строк с использованием синтаксиса «формата даты и времени» RFC 3339. Для formatdate аргумент timestamp должен быть строкой, соответствующей этому синтаксису.
Примеры
> formatdate("DD MMM YYYY hh:mm ZZZ", "2018-01-02T23:12:01Z")
02 Jan 2018 23:12 UTC
> formatdate("EEEE, DD-MMM-YY hh:mm:ss ZZZ", "2018-01-02T23:12:01Z")
Tuesday, 02-Jan-18 23:12:01 UTC
> formatdate("EEE, DD MMM YYYY hh:mm:ss ZZZ", "2018-01-02T23:12:01-08:00")
Tue, 02 Jan 2018 23:12:01 -0800
> formatdate("MMM DD, YYYY", "2018-01-02T23:12:01Z")
Jan 02, 2018
> formatdate("HH:mmaa", "2018-01-02T23:12:01Z")
11:12pmСинтаксис спецификации
Спецификация формата — это строка, содержащая последовательности форматирования из приведённой ниже таблицы. Эта функция предназначена для создания распространённых форматов меток времени, ориентированных на машинную обработку, например форматов, определённых в RFC 822, RFC 850 и RFC 1123. Она не подходит для форматирования дат, ориентированного на человека, поскольку не учитывает локаль. В частности, она может выводить названия месяцев и дней только на английском языке.
Спецификация может содержать следующие последовательности:
| Последовательность | Результат |
|---|---|
YYYY |
Год из четырёх или более цифр, например «2006». |
YY |
Год по модулю 100, дополненный нулями слева как минимум до двух цифр, например «06». |
MMMM |
Полное название месяца на английском языке, например «January». |
MMM |
Сокращённое до трёх букв название месяца на английском языке, например «Jan». |
MM |
Номер месяца, дополненный нулём слева до двух цифр, например «01» для января. |
M |
Номер месяца без дополнения нулями, например «1» для января. |
DD |
Число месяца, дополненное нулём слева до двух цифр, например «02». |
D |
Число месяца без дополнения нулями, например «2». |
EEEE |
Полное название дня недели на английском языке, например «Monday». |
EEE |
Сокращённое до трёх букв название дня недели на английском языке, например «Mon». |
hh |
Час в 24-часовом формате, дополненный нулём слева до двух цифр, например «02». |
h |
Час в 24-часовом формате без дополнения нулями, например «2». |
HH |
Час в 12-часовом формате, дополненный нулём слева до двух цифр, например «02». |
H |
Час в 12-часовом формате без дополнения нулями, например «2». |
AA |
Обозначение AM/PM для часа заглавными буквами, например «AM». |
aa |
Обозначение AM/PM для часа строчными буквами, например «am». |
mm |
Минута в пределах часа, дополненная нулём слева до двух цифр, например «05». |
m |
Минута в пределах часа без дополнения нулями, например «5». |
ss |
Секунда в пределах минуты, дополненная нулём слева до двух цифр, например «09». |
s |
Секунда в пределах минуты, например «9». |
ZZZZZ |
Смещение часового пояса с двоеточием между часами и минутами, например «-08:00». |
ZZZZ |
Смещение часового пояса только со знаком и цифрами, например «-0800». |
ZZZ |
Как ZZZZ, но для UTC используется специальное значение «UTC». |
Z |
Как ZZZZZ, но для UTC используется специальное значение «Z». |
Все символы, не являющиеся буквами, например знаки препинания, воспроизводятся в выходных данных без изменений. Чтобы включить в строку формата буквальный текст, заключите его в одинарные кавычки '. Чтобы включить буквальную кавычку, экранируйте её, удвоив кавычки.
> formatdate("h'h'mm", "2018-01-02T23:12:01-08:00")
23h12
> formatdate("H 'o''clock'", "2018-01-02T23:12:01-08:00")
11 o'clockСинтаксис спецификации формата разработан так, чтобы читатель мог легко догадаться, какой формат получится, даже если он не является экспертом в этом синтаксисе. Поэтому для распространённых форматов не предусмотрены сокращённые обозначения, однако ниже приведены строки формата для различных форматов, определённых RFC, которые при необходимости можно скопировать в конфигурацию:
-
RFC 822 и RFC RFC 2822:
"DD MMM YYYY hh:mm ZZZ" -
RFC 850:
"EEEE, DD-MMM-YY hh:mm:ss ZZZ" -
RFC 1123:
"EEE, DD MMM YYYY hh:mm:ss ZZZ" -
RFC 3339:
"YYYY-MM-DD'T'hh:mm:ssZ"(однако это также формат входных данных, поэтому такое преобразование избыточно.)
Связанные функции
-
format— более универсальная функция форматирования произвольных данных. -
timestampвозвращает текущие дату и время в формате, подходящем для передачи вformatdate.
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.10/language/functions/formatdate/