当前位置: 首页 > 后端技术 > Python

Pythondatetime时区转换大坑

时间:2023-03-26 00:09:22 Python

背景:从数据库中获取时间=data1[0][0]my_time是datetime类型,需要和当前时间进行比较cn_zone=pytz.timezone('Asia/Shanghai')defget_cur_time():returndatetime.datetime.now(cn_zone)#直接subtraction会报错#can'tsubtractoffset-naiveandoffset-awaredatetimesget_cur_time()-考虑把my_time转换成timestamp然后计算大坑开始!由于my_time是一个开头没有时区的datetime,所以不管用什么方法都不能改变它的timestamp的值。猜测是在生成的时候,时间戳就已经确定了,后面是不能改的。另:改时区还有一个坑:https://www.cnblogs.com/ajianbeyourself/p/11982529.html下面将时区改成LMT+0806(多八小时六分钟)cn_zone=pytz.timezone('Asia/Shanghai')my_time.replace(cn_zone)正确用法:用datetime减去,但用localize改正ltime=cn_zone.localize(my_time)#这个可以再减(get_cur_time()-ltime).seconds