【发布时间】:2020-12-15 15:59:21
【问题描述】:
拥有像2020-11-22T12:14:50+0100 和2020-11-22T12:14:50+0200 这样的ISO8601 日期时间字符串(注意不同的时区),是否可以使用Julia 的Dates.DateTime(::DateTime, ::DateFormat) 通过在DateFormat 中添加一些通配符来将其转换为正确的日期时间?我们向the docs学习:
DateTime 类型不知道时区(用 Python 的说法是幼稚的),类似于 Java 8 中的 LocalDateTime。可以通过编译 IANA 时区数据库的 TimeZones.jl 包添加额外的时区功能
x = ["2020-11-22T12:14:50+0100", "2020-11-22T12:14:50+0200"]
Dates.DateTime.(x) # fails
# somewhat hacky but doesn't fail.
x = replace.(x, r"\+0.+00" => "")
Dates.DateTime.(x, DateFormat("y-m-dTH:M:S"))
# 2-element Array{DateTime,1}:
# 2020-11-22T12:14:50
# 2020-11-22T12:14:50
有没有办法添加通配符来避免replace?
例如
# not run
Dates.DateTime.(x, DateFormat("y-m-dTH:M:S+0*00"))
【问题讨论】: