Spec-Zone.ru › OpenTofu 1.11

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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API