1.python常用的时间,时区库及其用法
2.Etc/GMT+8 是UTC时区-8的偏移量
3.Asia/Shanghai和GMT+8的区别----
python常用的时间,时区库
常用的库有time, datetime, dateutil, pytz等
time的tzset()方法:根据环境变量TZ重新初始化时间相关设置
import time
import os
local_time = time.strftime("%Y-%m-%d %H:%M:%S")
print local_time
os.environ['TZ'] = 'Etc/GMT-6'
time.tzset()
tz_time = time.strftime("%Y-%m-%d %H:%M:%S")
print tz_time
控制台上的打印为
2020-11-21 14:29:25 # local_time打印出了当前时间
2020-11-21 12:29:25 # os.environ['TZ']设置了时区是东6区,北京是东8区,所以tz_time会比现在的是时间落后2h
直接打印该函数是没有返回值。所以这个函数是结合环境变量去修改时区的。
datetime
astimezone,replace等用法
参考下https://blog.csdn.net/weixin_42146296/article/details/93764817里面写的很详细
pytz:
pytz模块常用于时区的转换,常常配合datetime一起使用
pytz.all_timezones_set,返回所有支持的时区的集合
pytz.country_names,返回常用时区的列表和集合
pytz.country_names,返回国家(地区)ISO Alpha-2代码作为键
Etc/GMT+8 是UTC时区-8的偏移量,
正常的,我们认为UTC(向东)之前的偏移为正,UTC(向西)之后的偏移为负。北京时区(东8区)是比UTC提前8小时。
有一些例外。该Etc/GMT…
名携带相反的加/减约定:
-
Etc/GMT+1
=-01:00
偏移量=比UTC晚一小时 -
Etc/GMT+12
=-12:00
偏移量= 12小时后面UTC
…和…
-
Etc/GMT-1
=+01:00
偏移量=比UTC提前一小时 -
Etc/GMT-12
=+12:00
偏移量= UTC提前十二小时
所以想要用北京时区的话得用Etc/GMT-1
Asia/Shanghai和GMT+8的区别
因为之前区别冬令时和夏令时,在1986-1991年夏令时。夏天和冬天差1个小时,后面废弃了令时,Asia/Shanghai会兼容这个时间段。
参考:
https://www.w3cschool.cn/python/att-time-tzset.html
https://blog.csdn.net/weixin_42146296/article/details/93764817
https://www.liaoxuefeng.com/wiki/1016959663602400/1017648783851616
https://blog.csdn.net/zjy_love_java/article/details/107704594
https://stackoverflow.com/questions/7303580/understanding-the-etc-gmt-time-zone