我正在尝试解析一个日期并将其保存到一个表中。下面是函数:
defp string_to_datetime(string) do
result = string
|> String.split(";")
|> List.last
|> Timex.parse("{0M}/{0D}/{YYYY} {h12}:{m} {AM}")
case result do
{dt, _} -> dt
:error -> nil
end
end字符串需要在开始时进行一些清理,但当我尝试将其保存到此字段时出现错误:
field :first_appointment, Timex.Ecto.DateTime下面是错误:
** (exit) an exception was raised:
** (Protocol.UndefinedError) protocol Timex.Protocol not implemented for :error
(timex) lib/protocol.ex:1: Timex.Protocol.impl_for!/1
(timex) lib/protocol.ex:36: Timex.Protocol.to_datetime/2真的不知道这是什么意思。有什么想法吗?
发布于 2016-08-03 09:52:15
Timex.parse/2期望返回{:ok, dt}或{:error, reason}
你必须像这样改变你的案例结果:
case result do
{:ok, dt} -> dt
{:error, reason} -> IO.inspect reason
end这来自于Timex的实现:
@spec parse(String.t, String.t) :: {:ok, DateTime.t | NaiveDateTime.t} | {:error, term}https://stackoverflow.com/questions/38732453
复制相似问题