美文网首页
Golang time.Parse和time.Format的时区

Golang time.Parse和time.Format的时区

作者: 马谦马谦马谦 | 来源:发表于2017-12-03 22:27 被阅读0次

原文链接:Golang time.Parse和time.Format的时区问题

一、问题描述

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

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

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())
}

结果:

2017-12-03 22:01:02 +0800 CST
2017-12-03 22:18:26.288174547 +0800 CST m=+0.001532618
1044.288357362

相关文章

  • Golang time.Parse和time.Format的时区

    原文链接:Golang time.Parse和time.Format的时区问题 一、问题描述 在windows下,...

  • Golang internals

    To be continued... time.Time golang的时区和神奇的time.Parse cont...

  • golang的时区和神奇的time.Parse

    时区 先写一段测试代码: 输出: 从以上代码的测试结果可以得出几点: time.Now 得到的当前时间的时区跟电脑...

  • Go time时区

    如上可知:1、同样的时间字符串,time.Parse转换的时间为UTC时区,而time.ParseInLocati...

  • golang时区设置

    golang时区设置

  • 【Golang】time的时区问题

    先上代码 代码分析 start 和 end是两个时间字符串,并且没有显式声明时区。当使用time.Parse去解析...

  • time

    时间包括时间值和时区,没有包含时区信息的时间是不完整的、有歧义的。 Golang内置的time包提供了时间的显示和...

  • Golang字符串转为Time类型需要注意

    在golang中,将字符串转为Time类型可以使用以下两种方式time.Parse("2006-01-02 15:...

  • 基于scratch的iris容器示例

    本示例基于golang iris的Hello World,静态编译,基于空白镜像scratch,解决了时区问题 创...

  • Golang MySQL 时区的坑

    在使用go-sql-driver操作 mysql 时,遇到了由于 mysql 与程序不在同一时区引发的问题 问题 ...

网友评论

      本文标题:Golang time.Parse和time.Format的时区

      本文链接:https://www.haomeiwen.com/subject/hygzbxtx.html