要点:
1.不要用time模块在不同时区间转换
2.如果要在不同时区之间执行可靠的转换,可以用内置的datetime模块和开发者社区提供的pytz模块搭配起来使用
3.开发者总是应该先把时间转换成UTC格式的时间,然后再进行其他操作,最后再转换为本地时间
time模块
time.time()获取时间戳
time.localtime()获取当前结构化(struct_time)的时间
time.mktime()将struct_time转换为时间戳
time.gmtime()将时间戳转换为struct_time、
time.strptime(string, format),将字符串类型的时间转换为结构化的时间
time.strftime(format, struct_time),将结构化的时间转换为标准时间格式
可用strptime,strftime对时间进行格式化:
datetime模块:
下述代码将UTC时间转换为笔者的电脑本机时间,笔者所处的是北京时间(东八区时间+08:00)
可见UTC时间转换为本机时间,是在原有时间上加了8个小时,时区往东,每过一个时区加一个小时,时区往西,每过一个时区减一个小时
我们计算不同时区的时间时需要用UTC时间为过度进行转换,下述代码是将航班到达纽约的时间转换为旧金山时间: