Go time时区

2022-03-01  本文已影响0人  晚歌歌
package main

import (
    "fmt"
    "time"
)

const TimeLayout = "2006-01-02 15:04:05"

func main() {
    t := "2022-01-28 18:22:18"
    t1, _ := time.ParseInLocation(TimeLayout, t, time.Local)
    t2, _ := time.Parse(TimeLayout, t)
    fmt.Println(t1.Format(TimeLayout))
    fmt.Println(t1.Unix())
    fmt.Println(t2.Format(TimeLayout))
    fmt.Println(t2.Unix())
}

image.png
2022-01-28 18:22:18
1643365338
2022-01-28 18:22:18
1643394138

如上可知:
1、同样的时间字符串,time.Parse转换的时间为UTC时区,而time.ParseInLocation(中国)转换的时间为UTC+8时区,因此两者的Unix相差八小时。
转换时需要注意一定要带上时区进行转换,否则在中国转换完的Unix在使用时会少了八小时
2、忽略时区时,两者Format后的格式一致
3、另外Go的时间格式化也比较奇怪:const TimeLayout = "2006-01-02 15:04:05"

上一篇下一篇

猜你喜欢

热点阅读