在 Julia 中向日期时间添加一个小时?
Adding an hour to datetime in Julia?
假设我有一个日期时间,我想向该日期时间添加一个任意时间段并获得一个新的日期时间。比如我要找除夕后333小时后的日期和时间
出现两个问题:
- 我实际上无法创建超过 23 小时的时间
- 如果我确实创建了 ::Time,我无法将它添加到 ::DateTime
我的问题基本上是如何将时间相加?
代码
julia> dt = DateTime(2021,1)
2021-01-01T00:00:00
julia> t = Time(333)
ERROR: ArgumentError: Hour: 333 out of range (0:23)
julia> t = Time(1)
01:00:00
julia> dt + t
ERROR: MethodError: no method matching +(::DateTime, ::Time)
Closest candidates are:
+(::Any, ::Any, ::Any, ::Any...) at operators.jl:560
您不应该将 Time
相加,因为这些是时间实例。您想要将 Period
s 添加到您的 Time
以计算时间段结束后的时间:
julia> using Dates
julia> dt = DateTime(2021,1)
2021-01-01T00:00:00
julia> dt + Hour(333)
2021-01-14T21:00:00
julia> Hour <: Period
true
julia> Time <: Period
false
假设我有一个日期时间,我想向该日期时间添加一个任意时间段并获得一个新的日期时间。比如我要找除夕后333小时后的日期和时间
出现两个问题:
- 我实际上无法创建超过 23 小时的时间
- 如果我确实创建了 ::Time,我无法将它添加到 ::DateTime
我的问题基本上是如何将时间相加?
代码
julia> dt = DateTime(2021,1)
2021-01-01T00:00:00
julia> t = Time(333)
ERROR: ArgumentError: Hour: 333 out of range (0:23)
julia> t = Time(1)
01:00:00
julia> dt + t
ERROR: MethodError: no method matching +(::DateTime, ::Time)
Closest candidates are:
+(::Any, ::Any, ::Any, ::Any...) at operators.jl:560
您不应该将 Time
相加,因为这些是时间实例。您想要将 Period
s 添加到您的 Time
以计算时间段结束后的时间:
julia> using Dates
julia> dt = DateTime(2021,1)
2021-01-01T00:00:00
julia> dt + Hour(333)
2021-01-14T21:00:00
julia> Hour <: Period
true
julia> Time <: Period
false