登录
首页 >  Golang >  Go问答

使用给定时间戳跟踪当前年份和月份

来源:stackoverflow

时间:2024-03-31 22:54:33 207浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《使用给定时间戳跟踪当前年份和月份》,涉及到,有需要的可以收藏一下

问题内容

我有一个格式为 181020z 的时间戳,即该月的第 18 天,utc 时间 1020。

我想将其解析为 go,其中 time.time 给我 2019-04-18t10:20:00z 而不是 0000-01-18t10:20:00z

下面是我用来解析时间的代码

now := time.Now()
    layout := "200601021504Z"
    timeField := strconv.Itoa(now.Year()) + strconv.Itoa(int(now.Month())) + fields[1]
    fmt.Println(timeField) // 20204181050Z
    t, err := time.Parse(layout, timeField)

解决方案


这是一种解决方法:

func main()
    now := time.Now()
    layout := "021504Z"

    t, _ := time.Parse(layout, "181020Z")
    t = t.AddDate(now.Year(), int(now.Month()) - 1, 0) 
    fmt.Println(t)  // 2020-04-18T10:20:00Z

Example

关于你最后的解决方案——它几乎是正确的)。问题是您的布局(“200601021504z”)需要两位数的月份表示(即04而不是四月的4)。但 now.month() 返回没有 0 填充的月份表示(即 4)。

本篇关于《使用给定时间戳跟踪当前年份和月份》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

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