Как вы анализируете строку даты и времени в тип, совместимый с 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.

Его исходный код может вдохновить каждого, кто все еще хочет заново внедрить колесо самостоятельно.

Другие вопросы по тегам