Datetime JULIA中的处理日期时间溢出

Datetime JULIA中的处理日期时间溢出,datetime,julia,Datetime,Julia,我知道Javascript Date()函数可以处理日期输入溢出。但在朱莉娅身上我犯了错误。 有没有办法自动处理溢出 DateTime(2020, 4, 22, 15, 43, 67) # ----> 2020-4-22T15:44:07 DateTime(2020, 12, 31, 23, 59, 60) # ----> 2021-1-1T00:00:00 我发现抛出错误的默认行为很有用。如果您想允许溢出,您可以为此定义自己的函数,例如: julia> MyDateTim

我知道Javascript Date()函数可以处理日期输入溢出。但在朱莉娅身上我犯了错误。 有没有办法自动处理溢出

DateTime(2020, 4, 22, 15, 43, 67)  # ----> 2020-4-22T15:44:07
DateTime(2020, 12, 31, 23, 59, 60) # ----> 2021-1-1T00:00:00

我发现抛出错误的默认行为很有用。如果您想允许溢出,您可以为此定义自己的函数,例如:

julia> MyDateTime(y, m, d, h, mi, s) = 
           +(DateTime(0), Year(y), Month(m-1), Day(d-1),
             Hour(h), Minute(mi), Second(s))
MyDateTime (generic function with 1 method)

julia> MyDateTime(2020, 4, 22, 15, 43, 67)  # ----> 2020-4-22T15:44:07
2020-04-22T15:44:07

julia> MyDateTime(2020, 12, 31, 23, 59, 60) # ----> 2021-1-1T00:00:00
2021-01-01T00:00:00
请注意,操作顺序很重要-我们先提前一年,然后是一个月,等等(例如,提前一秒的时间的效果可能取决于月份、年份和日期):

(如果月、日等值非常大且无效,则这可能会变得特别棘手。)

julia> MyDateTime(2020, 2, 28, 23, 59, 60)
2020-02-29T00:00:00

julia> MyDateTime(2021, 2, 28, 23, 59, 60)
2021-03-01T00:00:00