文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
2、时间戳与日期字符串相互转化
时间戳转成日期格式,需要先转成将时间戳转成 time.Time
类型再格式化成日期格式。
2.1 根据秒数、纳秒数返回 time.Time
类型
now := time.Now()
layout := "2006-01-02 15:04:05"
t := time.Unix(now.Unix(),0) // 参数分别是:秒数,纳秒数
fmt.Println(t.Format(layout))
2.2 根据指定时间返回 time.Time
类型,使用函数 time.Date()
now := time.Now()
layout := "2006-01-02 15:04:05"
//根据指定时间返回 time.Time 类型
//分别指定年,月,日,时,分,秒,纳秒,时区
t := time.Date(2011, time.Month(3), 12, 15, 30, 20, 0, now.Location())
fmt.Println(t.Format(layout))
2.3 日期字符串解析成 time.Time
类型
t, _ := time.ParseInLocation("2006-01-02 15:04:05", time.Now().Format("2006-01-02 15:04:05"), time.Local)
fmt.Println(t)
// 输出 2021-01-10 17:28:50 +0800 CST
// time.Local 指定本地时间
解析的时候需要特别注意时区的问题:
fmt.Println(time.Now())
fmt.Println(time.Now().Location())
t, _ := time.Parse("2006-01-02 15:04:05", "2021-01-10 15:01:02")
fmt.Println(t)
输出:
2021-01-10 17:22:10.951904 +0800 CST m=+0.000094166
Local
2021-01-10 15:01:02 +0000 UTC
可以看到, time.Now()
使用的 CST(中国标准时间),而 time.Parse()
默认的是 UTC(零时区),它们相差 8 小时。所以解析时常用 time.ParseInLocation()
,可以指定时区。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论