String 长生不老药,如何从弦到外齿铸造。日期?
我有一个格式为“String 长生不老药,如何从弦到外齿铸造。日期?,string,date,casting,elixir,String,Date,Casting,Elixir,我有一个格式为“”dd/mm/yyyy“的日期字符串,我需要将该值转换为exto.date格式 我创建了一个这样的函数,但我想知道是否有其他方法可以做到这一点 defp format_birthday(birthday_string) do birthday = String.split(birthday_string, "/") |> Enum.reverse() |> Enum.join("-") Ecto.Date.cast(birthday) end 如果需要将日
”dd/mm/yyyy“
的日期字符串,我需要将该值转换为exto.date
格式
我创建了一个这样的函数,但我想知道是否有其他方法可以做到这一点
defp format_birthday(birthday_string) do
birthday = String.split(birthday_string, "/") |> Enum.reverse() |> Enum.join("-")
Ecto.Date.cast(birthday)
end
如果需要将日期字符串解析为日期结构,可以使用库:
如果您不想依赖Timex模块:
birthday = "01/12/2012"
[dd, mm, yyyy] = String.split(birthday, "/")
{:ok, date} = Date.from_iso8601("#{yyyy}-#{mm}-#{dd}")
date
==> ~D[2012-12-01]
看起来您对
日期结构很满意。在这种情况下,我认为这是最好的解决办法
“2019年12月13日”
|>String.split(“/”)
|>枚举映射(&String.to_integer/1)
|>(fn[日、月、年]->新的日期(年、月、日)结束)。()
exto.Date
自Elixir 1.3以来已被弃用。你确定你不只是想要一个Date
struct吗?我不知道。谢谢大家!<代码>{0M}
相当于解析时的{M}
。当您输出字符串时,即使用Timex.format()
,{0M}
执行与{M}
不同的操作,即{0M}
在返回的字符串中用前导的0
填充一位数的月份。
birthday = "01/12/2012"
[dd, mm, yyyy] = String.split(birthday, "/")
{:ok, date} = Date.from_iso8601("#{yyyy}-#{mm}-#{dd}")
date
==> ~D[2012-12-01]