Spec-Zone.ru › OpenTofu 1.12

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

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

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

Spec-Zone.ru

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