glang 时区转换

官方代码 一脸蒙圈
location:= time.FixedZone("UTC-6", -6*40*40) 
location:= time.FixedZone("UTC-7", -7*50*50) 

其实官方给的只是示例 并不能直接用 如果你直接用恭喜你,可以跑路了

经常看到 UTC时间、GMT时间、CST时间 搞不清楚

  • 因为地球自转越来越慢,每年都会比前一年多出零点几秒,每隔几年协调世界时组织都会给世界时+1秒,让基于原子钟的世界时和基于天文学(人类感知)的格林尼治标准时间相差不至于太大。并将得到的时间称为UTC,这是现在使用的世界标准时间
  • UTC:Coordinated Universal Time 协调世界时
    • UTC是根据原子钟来计算时间
    • 现在世界上最精确的原子钟50亿年才会误差1秒,可以说非常精确
  • GMT:Greenwich Mean Time 格林尼治标准时间。GMT = UTC+0
    • GMT是根据地球的自转和公转来计算时间
    • GMT是老的时间计量标准
  • CST:CST却同时可以代表如下 4 个不同的时区:
    • China Standard Time UT+8:00
    • Central Standard Time (USA) UT-6:00
    • Central Standard Time (Australia) UT+9:30
    • Cuba Standard Time UT-4:00

时间区分

  • 本初子午线和格林威治天文台为起点 也就是 0时区
  • 地球是圆的 球体360度
    • 地理上: 经度 15度一个时区
    • 时间上: 一天24小时 每个小时一个时区
  • 我们位于东八区

时间转换的格式 直接 string int

  • string
time.LoadLocation("Asia/Shanghai") 
  • int
#  FixedZone 返回一个始终使用给定区域名称和偏移量(UTC 以东秒数)的位置
time.FixedZone("CST", 8*3600)
posted @ 2022-07-11 10:48  vx_guanchaoguo0  阅读(81)  评论(0编辑  收藏  举报