Unix 时间戳
首先, unix 时间戳的单位是秒, 表示从美东时间(UTC) 的 1970 年 1 月 1号的 0点 到现在,经过的秒数。因为 Unix 时间的定义中,已经明确了使用美东时间,所以我们在使用的时候,不用指定 unix 时间戳所在的地区。
UTC 和 CST 时间格式
对于中国的程序员来说,在初始 utc 和 cst 时间上,可能需要做一些额外操作。
首先, cst 时间比 utc 时间快 8 小时,一般来说 CST = UTC + 8
Unix 转 时间格式默认时区/ 本地时区
在 golang 语言体系中,如果不指定时区,则默认使用系统指定的时区
date
在写一个简单的单元测试,看下 time.Time 数据结构输出格式
我在执行测试文件的时候,是北京时间(CST) 的 13:18 , 但是程序显示为 05:18 (UTC)
如果我们直接将这个时间输出出来,对于国内用户来说,会比较难以理解(毕竟输出的时间和北京时间无法对齐)
指定时区
$GOROOT/lib/time/zoneinfo.zipzoneinfo.zip目录名/文件名
Asia/ShanghaiAsia/Chongqing
可以看到指定输出为 CST 格式
指定格式
2022年01月01日,05时54分
数据占位符月份1, 01, Jan, January日2, 02, _2时3,03,15,PM,pm,AM,am分4,04秒5,05年06,2006时区-07,-0700,Z0700,Z07:00,-07:00,MST周几Mon,Monday
可以看到, golang 已经按照输出我们预期的格式了
2016.01.0215:04:05
比如下面的代码,会得到非预期的结果
本文使用 文章同步助手 同步