美文网首页
【Golang】time的时区问题

【Golang】time的时区问题

作者: 冉小妹Ran | 来源:发表于2020-03-26 16:56 被阅读0次

先上代码

package main

import (
    "fmt"
    "time"
)

var (
    layout    string = "2006-01-02 15:04:05"
    startTime string = "2020-03-25 17:00:00"
    endTime   string = "2020-03-25 19:00:00"
)

func main() {
    start, _ := time.Parse(layout, startTime)
    fmt.Printf("initTime is %v\n", start)
    //initTime is 2020-03-25 17:00:00 +0000 UTC

    end, _ := time.Parse(layout, endTime)
    fmt.Printf("end is %v\n", end)
    //end is 2020-03-25 19:00:00 +0000 UTC

    e := end.Unix()
    fmt.Printf("e is %v\n", e)
    //e is 1585162800

    fmt.Printf("now is %v\n", time.Now())
    //now  is 2020-03-26 16:34:53.1912054 +0800 CST m=+0.002021101

    fmt.Printf("now is %v\n", time.Now().Unix())
    //now  is 1585212169
}

代码分析

  1. start 和 end是两个时间字符串,并且没有显式声明时区。
    当使用time.Parse去解析start和end两个时间字符串的时候,会默认按照UTC时区去解析。
    所以可以看到输出的结果在后面会有一个UTC,表示是UTC时间。
  2. end.Unix(),返回end的时间戳1585162800,在Unix时间戳工具里面查询,可以看到1585162800对应的是2020/3/26 3:0:0。
    原因:我的电脑的时区是东八区(也就是北京时间),endTime="2020-03-25 19:00:00"是UTC时间,对应到我们本地时间自然要加8个小时,也就是2020/3/26 3:0:0。
  3. time.Now(),可以看到,输出的结果后面有 +0800 CST,这个就表示东八区的时间。

总结
时区问题是很容易被忽视的问题。今天在写项目的时候就被时区问题block了很长时间。
建议使用时间的时候尽量统一使用UTC时间,能够避免很多问题。

相关文章

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

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

  • 【Golang】time的时区问题

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

  • Golang internals

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

  • time

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

  • Go package(1) time 用法

    golang使用的版本: go version go1.10.3 一:功能介绍 time的一些功能,比如时区,像l...

  • mysql的时区错误问题: The server time zo

    mysql的时区错误问题: The server time zone value 'Öйú±ê׼ʱ¼ä' i...

  • golang时区设置

    golang时区设置

  • Mysql更新时区表

    时区问题 Django项目做了数据库迁移后有时候出现时区上的问题,例如django项目中设置的时区是TIME_Z...

  • mysql 设置时区

    查看当前时间,时区 #time_zone说明mysql使用system的时区,system_time_zone说明...

  • 基于scratch的iris容器示例

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

网友评论

      本文标题:【Golang】time的时区问题

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