检查字符串是否是Elixir中的日期

时间:2017-08-31 16:02:40

标签: elixir phoenix-framework

我是Elixir的新手并且想知道是否有办法检查字符串是否是日期而不必编写自己的函数来使用正则表达式?

2 个答案:

答案 0 :(得分:2)

这取决于解析后的字符串中日期的格式。 Elixir的标准库包含Date.from_iso8601,可用作以下内容:

def is_date?(date) do
  case Date.from_iso8601(date) do
    {:ok, _} -> true
    _ -> false
  end
end

如果您期望另一种格式的字符串,那么Timex库可能对您有用,因为它允许指定已解析字符串的格式。例如:

def is_date?(date) do
  case Timex.format(date, "{ISO:Extended}") do
    {:ok, _} -> true
    _ -> false
  end
end

答案 1 :(得分:1)

我想最合适的选项可能是Timex.parse,但您可以提供日期格式的信息。

如果您的格式有点复杂,我担心使用您自己的“日期时间助手”将是必要的。