如何将一个格式为"YYYYMMDD"的字符串解析为Timex.Parse.DateTime类型?

ces*_*gas 2 parsing date elixir

我想使用Paul Schoenfelder的真棒Timex库来解析一个简单的格式"YYYYMMDD"字符串到一个Timex.Parse.DateTime.t类型中.

现在,我正在做这样的事情:

{:ok, dt} = Timex.parse "20161111", "{YYYYDDMM}"
** (MatchError) no match of right hand side value: {:error, {:format, "Expected at least one parser to succeed at line 1, column 0."}}
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用.但是当我这样做时:

{:ok, dt} = Timex.parse "2016", "{YYYY}"        
{:ok, #<DateTime(2016-01-01T00:00:00Z)>}
Run Code Online (Sandbox Code Playgroud)

我被dt指定为DateTime变量.

我究竟做错了什么?

提前致谢

Dog*_*ert 6

  • 它看起来像是DD并且MM不是有效的解析器.您可能正在寻找0D0M(此处提供更多日期/月份解析器).
  • 您需要将每个组件包装在自己的组件中 {}

在最新的Git版本的Timex上运行:

iex> Timex.parse "20161111", "{YYYY}{0D}{0M}"
{:ok, #<DateTime(2016-11-11T00:00:00Z)>}
Run Code Online (Sandbox Code Playgroud)