如何转换这样的字符串日期
“20201228”
像这样的事情
“2020-12-28T00:00:00”
最佳答案
您在主题中要求使用“日期时间格式”,因此即使您的示例是字符串,如果可能的话最好使用 native 日期类型,这就是我将在此处包含的内容。
由于您不关心时区,NaiveDateTime很有用,因为它仅表示没有时区的抽象日期和时间。
def to_naive_datetime(<<yyyy::binary-4, mm::binary-2, dd::binary-2>>) do
[yyyy, mm, dd] = for i <- [yyyy, mm, dd], do: String.to_integer(i)
NaiveDateTime.new!(yyyy, mm, dd, 0, 0, 0)
end
用法:
iex(1)> Example.to_naive_datetime("20201228")
~N[2020-12-28 00:00:00]
如果你真的只想要一个字符串,你可以跳过整数解析:
def to_iso8601(<<yyyy::binary-4, mm::binary-2, dd::binary-2>>) do
"#{yyyy}-#{mm}-#{dd}T00:00:00"
end
用法:
iex(2)> Example.to_iso8601("20201228")
"2020-12-28T00:00:00"
关于elixir - 如何将字符串日期转换为日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66607557/