用datetime模块处理转换时区时间问题,而不是time模块

要点:

1.不要用time模块在不同时区间转换

2.如果要在不同时区之间执行可靠的转换,可以用内置的datetime模块和开发者社区提供的pytz模块搭配起来使用

3.开发者总是应该先把时间转换成UTC格式的时间,然后再进行其他操作,最后再转换为本地时间

time模块

time.time()获取时间戳

time.localtime()获取当前结构化(struct_time)的时间

time.mktime()将struct_time转换为时间戳

time.gmtime()将时间戳转换为struct_time、

用datetime模块处理转换时区时间问题,而不是time模块

 

 time.strptime(string, format),将字符串类型的时间转换为结构化的时间

time.strftime(format, struct_time),将结构化的时间转换为标准时间格式

可用strptime,strftime对时间进行格式化:

用datetime模块处理转换时区时间问题,而不是time模块

 

 

datetime模块:

下述代码将UTC时间转换为笔者的电脑本机时间,笔者所处的是北京时间(东八区时间+08:00)

用datetime模块处理转换时区时间问题,而不是time模块

 

 可见UTC时间转换为本机时间,是在原有时间上加了8个小时,时区往东,每过一个时区加一个小时,时区往西,每过一个时区减一个小时

我们计算不同时区的时间时需要用UTC时间为过度进行转换,下述代码是将航班到达纽约的时间转换为旧金山时间:

用datetime模块处理转换时区时间问题,而不是time模块

上一篇:当有跳秒发生时,卫星导航接收机应该怎么办?


下一篇:syf的开发笔记-4 go的时间获取