如何在朱莉娅使用2038年以后的时间日期?

时间:2016-11-11 19:32:01

标签: timezone julia

我需要在朱莉娅使用2038年以后的日期。怎么做?显然,你不能在2038年后的几年内使用时间日期。

TimeZones.jl的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 [链接],但由于这些日期是将来的,因此时区规则可能会发生变化而且不准确。“

1 个答案:

答案 0 :(得分:3)

这是正确的link

它说:

  

由于VariableTimeZone的内部表示,它是   确定时区过渡到无穷大是不可行的。以来   2038-01-19T03:14:07是可以用a表示的最后一个DateTime   Int32(Dates.unix2datetime(typemax(Int32)))决定2037年   将是计算所有过渡日期的最后一年。如果   已知在最后一次转换后存在其他转换   然后指定截止日期。

     

重要的是要注意,因为我们正在考虑未来的时间   区域转换和规定这些转换的规则是主题   改变,可能不准确。 如果您仍想与之合作   将来ZonedDateTime超过默认截止值即可重新编译   TimeZone对象并指定max_year关键字: *

*强调我的。

using TimeZones

TimeZones.Olson.compile(max_year=2200)

ZonedDateTime(DateTime(2100), TimeZone("Europe/Warsaw"))

>>> 2100-01-01T00:00:00+01:00