Spec-Zone.ru › OpenTofu 1.9

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

Синтаксис спецификации​

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

Spec-Zone.ru

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