formatdate Function
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Синтаксис спецификации
Спецификация формата — это строка, содержащая последовательности форматирования из следующей таблицы. Эта функция предназначена для создания распространённых форматов временных меток, ориентированных на машинную обработку, например форматов, определённых в RFC822, RFC850 и RFC1123. Она не подходит для форматирования дат, ориентированного на человека, поскольку не учитывает локаль. В частности, названия месяцев и дней недели она может выводить только на английском языке.
Спецификация может содержать следующие последовательности:
| Последовательность | Результат |
|---|---|
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.11/language/functions/formatdate/