程序开发 · 2025年7月7日

如何在 Go 中将持续时间转换为天数

当前位置: > > > > 如何在 Go 中将持续时间转换为天数

来源:stackoverflow
2024-04-23 12:39:38
0浏览
收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《如何在 Go 中将持续时间转换为天数》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

在 Go 中,如何将持续时间转换为天数?

例如 1W => 7 天,1Y => 365 天等。

解决方案

对于许多常见目的,简短的答案是将小时数除以 24,以获得通常有用的天数近似值。

d, _ := time.ParseDuration("48h")
days := d.Hours()/24 // 2 days

但是,这并不总是“正确的”,具体取决于您的情况。考虑:

2018年11月1日午夜到2018年11月8日午夜有多少天?答案实际上至少取决于两件事:您对一天的定义以及您所在的位置。如果您计算两个日期之间的持续时间,并按上述方式除法,如果您位于美国,由于夏令时的变化,您的答案将为 7.04167 天。

如果您的时间段发生在春季的正确时间,您的答案可能是 6.95833 天,因为 dst 朝另一个方向变化。

如果您考虑多个时区、闰秒或其他“正常”偏差,您最终可能会得到更令人困惑的结果。

出于某些目的,7.04167 天是正确的答案。对于其他目的,7 是正确的答案。

因此,在尝试计算“天数”时,首要任务始终是确定什么定义对您来说很重要。其次,弄清楚如何计算满足该需求的有意义的数字。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注公众号,一起学习编程~