您所在的位置:首页 / 知识分享

Go time.Parse() 和time.Format()

2020.12.09

1005

在windows下,time.Parse()的时区和time.Format()的时区是一致的。

在windows下,time.Parse()的时区和time.Format()的时区是一致的。


但是在linux环境下,time.Parse()的默认时区是UTC,time.Format()的时区默认是本地,两者如果不处理好就会导致错误。

使用time.ParseInLocation()而不是time.Parse():


package main
import "time"
import "fmt"
func main(){
    t, err := time.Parse("2006-01-02 15:04:05", "2017-12-03 22:01:02")
    if err != nil{
        fmt.Println(err)
        return
    }
    fmt.Println(t)
    fmt.Println(time.Now())
    fmt.Println(time.Now().Sub(t).Seconds())
}

输出:

2017-12-03 22:01:02 +0000 UTC
2017-12-03 22:15:26.592204446 +0800 CST m=+0.003020091
-27935.407549533

解决方式:

使用time.ParseInLocation()而不是time.Parse():

package main

import "time"
import "fmt"

func main(){
    localTime, err := time.ParseInLocation("2006-01-02 15:04:05", "2017-12-03 22:01:02", time.Local)
    if err != nil{
        fmt.Println(err)
        return
    }
    fmt.Println(localTime)
    fmt.Println(time.Now())
    fmt.Println(time.Now().Sub(localTime).Seconds())
}

来源:studygolang.com


相关新闻

解决CentOS6停止更新支持后yum源失效

2020.12.17

1249

最近CentOS 6已经停止更新支持,同时官方也把yum源删除了,目前CentOS 6系统使用yum命令安装软件包基本都是失败,因此需要更换yum源。

B端组件库“新”解

2020.01.03

1339

组件是通过对功能及视觉表达中元素的拆解、归纳、重组;并基于可被复用的目的。 作者-张成丽 新康众用户体验设计部体验设计师

UI栅格化系统-WEB

2018.12.09

4197

UI栅格化系统