我想使用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."}}


上面的代码无效。但是当我这样做时:

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


我将dt分配为DateTime变量。

我究竟做错了什么?

提前致谢

最佳答案

看来DDMM是无效的解析器。您可能正在寻找0D0M(更多可用的日期/月份解析器here)。
您需要将每个组件包装在自己的{}


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

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

08-19 00:30