4

在我的 Phoenix 应用程序中,我有一个带有日期/时间字段的表单,它将日期时间值以下列格式放入参数中:

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 值?

4

1 回答 1

3

虽然有很多方法可以从幼稚的方法中产生与 ecto 兼容的值,但还有更强大的解决方案:Timex Plugin for Ecto

它的源代码可能会激发所有仍想在内部重新实现轮子的人。

于 2016-12-01T06:43:46.100 回答