Обработка даты и времени

$DATETIME — системная сущность, которая хранит данные о дате и времени.

Сущность принимает следующие форматы даты и времени:

  • дата — 15 декабря, 15.12, 15 декабря 2021 или 15.12 2021;
  • время — 12:45, 12 45 и 12 часов 45 минут.

Примеры данных, в зависимости от формата даты и времени:

  • 20 декабря 2019 12:45

    {
       "year": 2019,
       "month": 12,
       "day": 20,
       "hour": 12,
       "minute": 45
    }
  • 20 декабря 2019 или 20.12 2019

    {
      "year": 2019,
      "month": 12,
      "day": 20
    }
  • 12 часов 45 минут12:45 или 12 45

    {
      "hour": 12,
      "minute": 45
    }

Сущность $DATETIME принимает как абсолютные значения времени (20 июня, 20.06), так и относительные (сегодня, вчера, завтра, через 4 дня). При этом, сама системная сущность не имеет информации о том, какая сегодня дата и какое сейчас время:

  • сегодня

    {
      "day": 0
    }
  • позавчера в три

    {
      "day": -2,
      "hour":3
    }
  • через две недели в пять часов вечера

    {
      "day":14,
      "hour":17,
      "period":"pm"
    }

Значения времени можно также принимать с помощью собственных сущностей.

Сущность $DATETIME можно использовать в сценарии совместно с сервисом для проверки текущей даты и времени.

Добавление $DATETIME в сценарий

Чтобы использовать системную сущность $DATETIME, добавьте на экран готовый интент Дата и время.

Интент принимает такие форматы даты и времени, как 15.05, 20 декабря, 12:00 и другие.

Для получения даты и времени среди других слов, добавьте к интенту синтаксис шаблонов со значением $DATETIME.

Готовый интент Дата и время

В этом случае, интент будет принимать не только ввод 15 декабря, но будет принимать также, например, хорошо, 15 декабря. При этом интент извлекает из фразы только дату и время.

Пример сценария для тестирования:

Пример тестового сценария

Если введенные данные не попадают в $DATETIME, то смартап будет возвращается на экран Ввод даты. В противном случае, полученные смартап выведет данные сущности $DATETIME и только после этого вернется на экран Ввод даты.

Сущность $DATETIME принимает как абсолютные значения времени (20 июня, 20.06), так и относительные (сегодня, вчера, завтра, через 4 дня). При этом, сама системная сущность не имеет информации о том, какая сегодня дата и какое сейчас время.

Получение даты и времени

Для получения даты, хранящейся в сущности $DATETIME используйте следующий синтаксис:

$DATETIME.day

Для получения времени, хранящегося в сущности $DATETIME используйте следующий синтаксис:

$DATETIME.hour
$DATETIME.minute

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней