Elixir:
Преобразование даты в строку
Как:
В Elixir модуль Date
содержит функцию to_string/1
, которая преобразует дату в строку.
date = ~D[2023-03-14]
date_string = Date.to_string(date)
IO.puts(date_string) # "2023-03-14"
Для более индивидуального форматирования вы можете использовать Timex
:
{:ok, datetime} = DateTime.new(~D[2023-03-14], {0, 0, 0})
formatted_date = Timex.format!(datetime, "{YYYY}-{0M}-{0D}")
IO.puts(formatted_date) # "2023-03-14"
Подробнее
До версии Elixir 1.3 манипулирование датами и временем было более громоздким и зависимым от сторонних библиотек. Начиная с версии 1.3 и позднее, Elixir включил модули Date
, Time
и DateTime
для лучшего управления датами и временем.
Когда вам нужно форматирование за пределами стандарта ISO8601, рассмотрите библиотеку Timex
, пакет Elixir, предоставляющий полный опыт работы с датой-временем.
Преобразование в строку не является магией. Речь идет о представлении сложной структуры Date
во что-то универсально понятное. Структура содержит больше информации, чем ее строковое представление, поэтому имейте в виду, что преобразование обратно из строки в дату потеряет этот дополнительный контекст, если он не закодирован должным образом.
См. также
- Модуль Date в Elixir: https://hexdocs.pm/elixir/Date.html
- Документация Timex: https://hexdocs.pm/timex/readme.html
- Формат ISO8601: https://ru.wikipedia.org/wiki/ISO_8601