Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir/Phoenix/Timex:协议Timex。未为实现协议:错误_Elixir_Phoenix Framework_Timex - Fatal编程技术网

Elixir/Phoenix/Timex:协议Timex。未为实现协议:错误

Elixir/Phoenix/Timex:协议Timex。未为实现协议:错误,elixir,phoenix-framework,timex,Elixir,Phoenix Framework,Timex,我试图解析一个日期并将其保存到一个表中。下面是函数: 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 :e

我试图解析一个日期并将其保存到一个表中。下面是函数:

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

我真的不知道这是什么意思。有什么想法吗?

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}