这个时间转换,我是完全懵了,按照我的理解,不是直接当前时间加上或者减去时间差,直接求timestamp 不就OK了... 为何不对?
Topic source没必要用
Tday = UTC_day.astimezone(timezone(timedelta(hours=int(Uh.group(1)))))
这句可以省去,实际上你这个Tday=UTC_day,相当于你第一句把datetime的tzinfo设为了一个数字,设置完的datatime已经可以直接使用timestamp函数了,你第二次Tday使用astimezone是用来把UTC_day换成另一个时区的,然而你的参数还是int(Uh.group(1)),相当于废操作 不过我看了几个答案,救你考虑到了时区正负号的问题,很不错
- 1
一雷叔一
作业: import re from datetime import datetime, timezone, timedelta
def to_timestamp(dt_str, tz_str): cday = datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S') Uh = re.match(r'UTC([+-][0-1][0-9]|[+-][0-9]):00', tz_str) UTC_day = cday.replace(tzinfo=timezone(timedelta(hours=int(Uh.group(1))))) Tday = UTC_day.astimezone(timezone(timedelta(hours=int(Uh.group(1))))) return Tday.timestamp()
t1 = to_timestamp('2015-6-1 08:10:30', 'UTC+7:00') t2 = to_timestamp('2015-5-31 16:10:30', 'UTC-09:00')
print(t1) print(t2)
这个时间转换,我是完全懵了,按照我的理解,不是直接当前时间加上或者减去时间差,得到UTC时间,直接求timestamp 不就OK了... 为何不对?
看了大家的答案修改了一下我的程序,但是改了还是有点懵...
UTC_day = cday.replace(tzinfo=timezone(timedelta(hours=int(Uh.group(1))))) Tday = UTC_day.astimezone(timezone(timedelta(hours=int(Uh.group(1)))))
这里的两次转换起到什么作用呢?