我需要在Julia中使用2038年以后的日期。怎么做呢?显然,您不能使用2038年之后的年份中的时区日期。
时区。Jl 's md
https://github.com/JuliaTime/TimeZones.jl/blob/d997abb7398ca8514007d1cbc77a031f721c727b/docs/types.md对不存在的链接页给出如下解释:
"或者,当使用2038年之后的未来日期时将导致错误:
julia> ZonedDateTime(2039, warsaw)
ERROR: TimeZone Europe/Warsaw does not handle dates on or after 2038-03-28T01:00:00 UTC
in call at ~/.julia/v0.4/TimeZones/src/timezones/types.jl:146
in ZonedDateTime at ~/.julia/v0.4/TimeZones/src/timezones/types.jl:260
可能有超过2038年的时区[链接],但由于这些日期是在未来,时区规则可能会发生变化,从而不准确。"
这是正确的链接。
上面写着:
由于VariableTimeZone的内部表示,它是无法确定一个时区过渡到无穷大。自20388-01-19 t03:14:07是最后一个可以用an表示的DateTimeInt32 (Dates.unix2datetime(typemax(Int32)))))被确定为2037将是计算所有过渡日期的最后一年。如果已知在最后一次转换之后存在其他转换然后指定截止日期。
重要的是要注意,因为我们讨论的是未来的时间区域转换和规定这些转换的规则是受约束的更改,可能不准确。如果你还想使用future ZonedDateTime超过默认截止时间后,您可以重新编译并指定max_year关键字: *
*强调我的。
using TimeZones
TimeZones.Olson.compile(max_year=2200)
ZonedDateTime(DateTime(2100), TimeZone("Europe/Warsaw"))
>>> 2100-01-01T00:00:00+01:00