【发布时间】:2018-02-26 06:51:58
【问题描述】:
当我创建一个表时,我像这样定义我的表字段
add(:arrive_at, :utc_datetime)
在用于变更集
的模型中attr(:arrive_at, :utc_datetime)
但是当我从任何设备发送带有时区的日期时间时,变更集将忽略时区信息,并且只转换日期时间部分,例如 2018-02-25 18:40:52.492657+03:00 将转换为 #DateTime。如何让正确的演员发挥作用
【问题讨论】:
-
这很奇怪.. 如果你在
iex -S mix:Ecto.Type.cast :utc_datetime, "2018-02-25 18:40:52.492657+03:00"中运行它会得到什么。我得到{:ok, #DateTime<2018-02-25 15:40:52Z>}。 -
@Dogbert 我得到了 {:ok, #DateTime} drive.google.com/file/d/1FXi_vXehH1TzzUCyTb2z7lRyqE84eiYI/…
-
Erlang/OTP 20 和 elixir 版本 1.6.1(使用 OTP 20 编译)
-
我想我找到了奇怪的行为原因,它的旧 ecto 版本 **"ecto": {:hex, :ecto, "2.1.6"**(从 mix.lock 文件复制)。我没有升级 ecto,因为如果我升级 ecto,它使用长整数作为主键,我必须更改许多触发器、函数等。但是如果有一种方法可以升级 ecto 并使用相同的整数键,那么一切都很好
标签: datetime casting elixir phoenix-framework ecto