在我的凤凰的应用程序,我试图插入一个事件记录到具有字段的数据库start_time
和end_time
- datetime数据将已被转换到客户端上的ISO字符串格式,并传递到凤凰API的JSON数据,但这是导致我一些麻烦时,我尽量让插入-模型期待这些值是:utc_datetime
所以我需要将它们转换-通过我的文档阅读,但我仍然不知道...
首先,这里的模型架构:
@primary_key {:id, :string, []}
@derive {Phoenix.Param, key: :id}
schema "calendar_event" do
field :start_time, :utc_datetime
field :end_time, :utc_datetime
field :description, :string
timestamps()
end
JSON数据从客户端将如下所示:
{
"start_time": "2017-09-28T18:31:32.223Z",
"end_time": "2017-09-28T19:31:32.223Z",
"description": "Test insert"
}
而如果我是(错误地)试图插入该数据,则该语句将如下所示:
MyApp.Repo.insert(%MyApp.CalendarEvent{id: "calendar_event:test1", start_time:
"2017-09-28T18:31:32.223Z", end_time: "2017-09-28T19:31:32.223Z",
description: "Test insert"})
正如预期的那样,这将引发我的datetime数据错误does not match type :utc_datetime
。 好吧,这很酷,但我的问题是,随着数据已经在ISO字符串,我怎样才能将其转换为药剂/外生将其确认为有效:utc_datetime
?