elixir - 如何将字符串日期转换为 DateTime 格式
问题描述
如何转换这样的字符串日期
"20201228"
像这样
"2020-12-28T00:00:00"
解决方案
您在主题中要求“日期时间格式”,因此即使您的示例是字符串,如果可能,最好使用本机日期类型,这就是我将在此处包含的内容。
由于您不关心时区,因此 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"
推荐阅读
- lua - 如何检查一个值是否不在 Lua 表中的任何位置?
- go - 我正在使用 Antlr4 创建一种语言,然后我想用它来生成 LLVM IR。我是否需要手写 LLVM IR 来响应我的访客事件?
- javascript - 脚本之间的 Google Chrome 消息 API 不起作用
- bash - 计算 bash 中的目录和文件
- swift - 如何使用协议将数据从视图控制器传递到其中的容器?
- matlab - While 和 If 循环 - 满足条件时返回两个结果
- php - DeviantArt 中的用户身份验证
- python - matplotlib.pyplot:绘图后共享轴的 x 轴不会将它们放在相同的 x 轴范围内
- python - 如何使用 Keras.to_Categorical 在 dataFrame 中一次对多个列进行 One-Hot 编码?
- html - IE 抓取 VBA 代码,例如航班信息搜索