登录
首页 >  Golang >  Go问答

Golang 时间格式化为特定时间戳

来源:stackoverflow

时间:2024-03-16 15:54:27 478浏览 收藏

在 Go 语言中,将时间格式化为特定时间戳时,需要遵循特定的格式。文章中尝试将时间格式化为 "2009-06-12 23:59:59",但使用了错误的时间格式。文章中使用的是 "2006-01-02 23:59:59",而正确的格式应该是 "2006-01-02 15:04:05"。因此,文章中获得的 "2019-06-11 118:589:589" 是由于时间格式错误导致的。

问题内容

我正在尝试将 time.time 类型格式化为昨天的特定时间(特别是 23:59:59)

我有一个函数可以将当前时间转换为 ist

func gettimeinist() time.time {
    loc, _ := time.loadlocation("asia/kolkata")
    now := time.now().in(loc)
    return now
}

另一个转换为前一天的函数

func getyesterdaysdatefromtime() time.time{
    return gettimeinist().adddate(0, 0, -1)
}

我想将上面的格式设置为日期 2009-06-12 23:59:59 的时间戳 我为此做

yesterday := common.GetYesterdaysDateFromTime()
yesterday.Format("2006-01-02 23:59:59")

但我得到这个 2019-06-11 118:589:589

我做错了什么?


解决方案


您的时间格式错误。 go中的参考时间是Mon Jan 2 15:04:05 MST 2006

func getTimeInIST() time.Time {
    loc, _ := time.LoadLocation("Asia/Kolkata")
    now := time.Now().In(loc)
    return now
}
func GetYesterdaysDateFromTime() time.Time {
    return getTimeInIST().AddDate(0, 0, -1)
}

func main() {
    yesterday := GetYesterdaysDateFromTime()
    print(yesterday.Format("2006-01-02 15:04:05"))
}

打印:

今天关于《Golang 时间格式化为特定时间戳》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

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