登录
首页 >  Golang >  Go问答

如何添加日期

来源:Golang技术栈

时间:2023-04-17 20:25:17 421浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《如何添加日期》,就很适合你!文章讲解的知识点主要包括golang,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我想得到第二天@给定日期的午夜。到目前为止,我正在使用:

givenDate.Add(time.Hour * time.Duration(24))

问题在于如果我添加 24 小时,我会在同一天呆在某些时区。在法国,他们不时改变时间。

使用以下添加一天是否安全?

time.Date(givenDate.Year(), givenDate.Month(), givenDate.Day()+1, 0, 0, 0, 0, loc)

loc在给定的示例中是 time.UTC。

正确答案

您提出的解决方案是“安全”且良好的:

t2 := time.Date(givenDate.Year(), givenDate.Month(), givenDate.Day()+1, 0, 0, 0, 0, loc)

您可以通过以下方式使其更快:

y, m, d := givenDate.Date()
t2 := time.Date(y, m, d+1, 0, 0, 0, 0, loc)

AsTime.Date()在一次调用中返回您的日期组件,如果您检查实现,则Time.Year()Time.Month()方法Time.Day()都在后台调用相同的Time.date()(未导出的)方法(在您的情况下为 3 次),就像Time.Date().

time.Date()文件表明:

日期返回对应的时间

yyyy-mm-dd hh:mm:ss + nsec nanoseconds

在给定位置 的那个时间的适当区域。

因此,文档指出该位置已被考虑在内,如果您将 0 传递给小时、分钟、秒、纳秒,那么 在给定的 zone 中 这些将是 0 。

好了,本文到此结束,带大家了解了《如何添加日期》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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