Julia 将秒数从 Dates 包转换为整数:没有匹配 Int64(::Second) 的方法

J. *_*elt 4 datetime julia

我正在使用 Dates 模块,并且正在尝试将 Seconds 对象转换为整数。

当我尝试以下操作时,出现错误:

x = Second(5)
Int(x)
# ERROR: MethodError: no method matching Int64(::Second)
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?我如何将其提取为整数值?

我的问题也适用于将分钟转换为整数、将天数转换为整数、将月数转换为整数等。

J. *_*elt 6

不使用 Int 构造函数,而是访问 Second 对象的 .value 属性:

x = Second(5)
x.value # 5
Run Code Online (Sandbox Code Playgroud)

该作品从日期中的其他对象模块,例如MinuteDayMonth等。

也查看@tholy 的答案,以很好地解释为什么它的结构是这样的。

作为旁注,dump()在这样的情况下是一个有用的功能 - 当您使用一个不熟悉的对象并且您想了解如何访问其属性等等时:

dump(x)
# Output:
# Second
#  value: Int64 5
Run Code Online (Sandbox Code Playgroud)