登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-23 12:39:38 425浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习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的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>