Date Golang Time.Sub返回小时、分钟、秒-如何在几天或几个月内获取它?

Date Golang Time.Sub返回小时、分钟、秒-如何在几天或几个月内获取它?,date,go,time,Date,Go,Time,在Golang,我试图使用time.Sub找出给定time.time值和当前time.time值之间的差异,结果如下所示- 4691h42m17.1831189s 是否可以让它返回天数或月数,而不对此值执行任何数学运算,只使用时间包?不可能。time.Sub返回的类型限制为小时: 对于日或更大的单位没有定义,以避免在夏令时时区转换中出现混淆 不,这是不可能的。time.Sub返回的类型限制为小时: 对于日或更大的单位没有定义,以避免在夏令时时区转换中出现混淆 不,正确的解决方案必须在时间上下文

在Golang,我试图使用
time.Sub
找出给定
time.time
值和当前
time.time
值之间的差异,结果如下所示-

4691h42m17.1831189s

是否可以让它返回天数或月数,而不对此值执行任何数学运算,只使用
时间
包?

不可能。
time.Sub
返回的类型限制为小时:

对于日或更大的单位没有定义,以避免在夏令时时区转换中出现混淆


不,这是不可能的。
time.Sub
返回的类型限制为小时:

对于日或更大的单位没有定义,以避免在夏令时时区转换中出现混淆


不,正确的解决方案必须在时间上下文中计算差异。请参阅可能重复的“否”,正确的解决方案必须在时间上下文中计算差异。查看的可能重复项,因此唯一的方法是将其解析为字符串,提取小时部分并将其转换为天:(@GauravOjha不解析它。Duration实际上是
int64
,使用Duration.(int64)来获得纳秒。但是转换并不简单。谢谢!@icza的评论在这个上下文中也很有用。@GrzegorzŻur将Duration转换为int64的正确语法是
int64(Duration)
,不是类型断言。duration类型可能已经有了您正在查找的方法,例如:
duration.Hours()
,因此唯一的方法是将其解析为字符串,提取小时部分并将其转换为天:(@GauravOjha不解析它。duration实际上是
int64
,使用duration.(int64)获得纳秒。但转换并不简单。谢谢!@icza的评论在这方面也很有帮助。@GrzegorzŻur将持续时间转换为int64的正确语法是
int64(持续时间)
,而不是类型断言。持续时间类型可能已经具有您正在查找的方法,例如:
Duration.Hours()