【问题标题】:Golang Time.Sub returns hours, mins, seconds - how to get it in days or months?Golang Time.Sub 返回小时、分钟、秒 - 如何在几天或几个月内得到它?
【发布时间】:2016-09-09 12:22:53
【问题描述】:

在 Golang 中,我试图找出给定的 time.Time 值和使用 time.Sub 的当前 time.Time 值之间的区别,我的结果看起来像这样 -

4691h42m17.1831189s

是否可以让它返回天数或月数,而无需对此值执行任何数学操作,只使用 time 包?

【问题讨论】:

标签: date go time


【解决方案1】:

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

没有对 Day 或更大单位的定义,以避免在夏令时时区转换之间产生混淆。

【讨论】:

  • 所以唯一的方法是将其解析为字符串,提取小时部分并将其转换为天? :(
  • @GauravOjha 不要解析它。持续时间实际上是int64,使用 duration.(int64) 获得纳秒。然而,转换并非易事。
  • 谢谢! @icza 的评论在这方面也很有帮助。
  • @GrzegorzŻur 将 Duration 转换为 int64 的正确语法是 int64(duration) ,而不是类型断言。
  • 持续时间类型可能已经有你正在寻找的方法例如:duration.Hours()golang.org/pkg/time/#Duration.Hours
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-20
  • 1970-01-01
  • 2021-06-26
  • 2019-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多