Jac*_*ack 1 duration go intervals
在 Go 中,如何将持续时间转换为天数?
例如 1W => 7days,1Y => 365days 等。
出于许多常见目的,简短的回答是将小时数除以 24,以获得通常有用的天数近似值。
d, _ := time.ParseDuration("48h")
days := d.Hours()/24 // 2 days
Run Code Online (Sandbox Code Playgroud)
但是,这并不总是“正确”的,这取决于您的情况。考虑:
从 2018 年 11 月 1 日午夜到 2018 年 11 月 8 日午夜之间有多少天?答案实际上至少取决于两件事:您对一天的定义以及您所在的位置。如果您计算两个日期之间的持续时间,并按上述方法进行除法,如果您位于美国,由于夏令时的变化,您的答案将是 7.04167 天。
如果您的时间段发生在春季的正确时间,则您的答案可能是 6.95833 天,这是由于 DST 向另一个方向变化。
如果您考虑到多个时区、闰秒或其他“正常”偏差,您最终可能会得到更加混乱的结果。
出于某些目的,7.04167 天将是正确的答案。对于其他目的,7 将是正确答案。
因此,在尝试计算“天”时,首要任务始终是确定对您而言重要的定义。其次,弄清楚如何计算满足需求的有意义的数字。
| 归档时间: |
|
| 查看次数: |
7409 次 |
| 最近记录: |