首页 > 解决方案 > Julia 将 Dates 包中的秒数转换为整数:没有方法匹配 Int64(::Second)

问题描述

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

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

x = Second(5)
Int(x)
# ERROR: MethodError: no method matching Int64(::Second)

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

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

标签: datetimejulia

解决方案


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

x = Second(5)
x.value # 5

这适用于 Dates 模块中的其他对象,例如Minute, Day,Month等。

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

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

dump(x)
# Output:
# Second
#  value: Int64 5

推荐阅读