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

时间:2016-04-01 15:48:45

标签: date parsing 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."}}

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

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

我将dt指定为DateTime变量。

我做错了什么?

提前致谢:D

1 个答案:

答案 0 :(得分:5)

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

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

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