golang time包 提供了多种时间类型的直接转换,同时也提供不同时区时间值的直接转换;
0: time.Local
这个是time包时间时区的统一设置, 默认引用操作系统时区设置;
1:time.Now()
time.Now() 返回的时间值是当前时区时间,当前时区依照 time.Local设置值。
2:time.Parse()
这个方法可以将“时间字符串”如:2017-3-14 11:11:40 转换为时间类型值(time.Time类型),这个转换出来的时间归属的时区依据字符串中时区描述,如果时间字符串中没有时区描述 则默认是UTC 。 \src\time\format_test.go 关于这个转换函数有详细的介绍
3:time.ParseInLocation() 这个方法与 time.Parse() 类似,不同之处就是可以手工指定一个时区loc类型值(time.Parse是默认的UTC),当时间字符串中没有时区描述时转换后的时间值归属这个指定时区。
4:time.Time.in() 这个方法是可以将当前时区时间转换到对应时区时间;
我们在做开发时绝大部分需要依赖时间这个值的,如果不需要考虑时区(即都在一个时区里面的)那么统一通过 time.Local 设置为一个时区值,这样time使用时就不需要做时区转换操作。 如果有多个分散系统组成,且系统面向各个时区的用户,那么 建议储存时间和计算时间统一使用UTC时区时间,当向最终用户展现时转换为用户当地时区时间即可。