我想使用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
变量。我究竟做错了什么?
提前致谢
最佳答案
看来DD
和MM
是无效的解析器。您可能正在寻找0D
和0M
(更多可用的日期/月份解析器here)。
您需要将每个组件包装在自己的{}
中
在最新的git版本的Timex上运行:
iex> Timex.parse "20161111", "{YYYY}{0D}{0M}"
{:ok, #<DateTime(2016-11-11T00:00:00Z)>}