Spec-Zone.ru › OpenTofu 1.10

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/

Spec-Zone.ru

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