Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 长生不老药,如何从弦到外齿铸造。日期?_String_Date_Casting_Elixir - Fatal编程技术网

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]