首页 > 解决方案 > Elixir,如何从字符串转换为 Ecto.Date?

问题描述

我有一个格式的日期字符串,"dd/mm/yyyy"我需要将该值转换为Ecto.Date格式。

我创建了一个这样的函数,但我想知道是否有另一种方法可以做到这一点。

defp format_birthday(birthday_string) do
  birthday = String.split(birthday_string, "/") |> Enum.reverse() |> Enum.join("-")

  Ecto.Date.cast(birthday)
end

标签: stringdatecastingelixir

解决方案


如果您不想依赖 Timex 模块:

birthday = "01/12/2012"

[dd, mm, yyyy] = String.split(birthday, "/")
{:ok, date} = Date.from_iso8601("#{yyyy}-#{mm}-#{dd}")
date

==> ~D[2012-12-01]

推荐阅读