Как вы анализируете строку даты и времени в тип, совместимый с Ecto.DateTime Elixir?
В моем приложении Phoenix у меня есть форма с полем даты / времени, которая помещает значение datetime в параметры в следующем формате:
2016-11-30 20:00
Я могу разобрать его с помощью библиотеки Timex:
Timex.parse("2016-11-30 20:00", "%Y-%m-%d %H:%M", :strftime)
Что приводит к:
{:ok, ~N[2016-11-30 20:00:00]}
"~ N [2016-11-30 20:00:00]" - это "наивное" значение даты и времени, которое не включает часовой пояс. Проблема в том, что этот тип значения не соответствует Ecto.DateTime, поэтому я не могу поместить его в набор изменений и сохранить в моей базе данных.
Вопрос: Как вы анализируете дату и время в строке в значение Ecto.DateTime с определенным часовым поясом (например, США / Восток)?
1 ответ
Несмотря на то, что существует множество способов получения эктосовместимого значения из наивного, существует более надежное решение: плагин Timex для Ecto.
Его исходный код может вдохновить каждого, кто все еще хочет заново внедрить колесо самостоятельно.