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

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

2020.12.09

1221

在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


相关新闻

Nanachi发布:基于 React 的多端小程序转译框架

2019.01.23

7550

自微信小程序出来后,互联网进入一个新的纪元。中国移动互联网再次三巨头切割,三大小程序加上以小米为首的快应用,割据这个大蛋糕。

用一篇干货,帮你完全读懂可视化设计(尺寸篇)

2020.08.01

1266

数据可视化设计中尺寸的确定是至关重要的,而尺寸的准确性,将直接影响到后期的设计、开发、适配及视觉效果清晰度等。为了更加准确高效的完成设计目标,前期确定好设计尺寸很关键,也是设计开始的必备条件。