def to_timestamp(dt_str, tz_str): dt_utc8 = datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S') # 先得到utc8的datetime dt_utc8_stamp = dt_utc8.timestamp() # 得到utc8的timestamp tz = re.compile(r'^UTC(.)(\d+):00$') # 用正则表达式获取UTC信息:1.+or- 2.哪个区 tz_delta = int(tz.match(tz_str).group(2)) # tz_delta是UTC的值,这个地方一定注意要取int,否则会报错(int与str类型相加) if tz.match(tz_str).group(1) == '-': # 如果是utc是负: dt_utc8_stamp = dt_utc8_stamp + (8+tz_delta)*3600 if tz.match(tz_str).group(1) == '+': dt_utc8_stamp = dt_utc8_stamp - (tz_delta - 8)*3600 return dt_utc8_stamp # 测试:t1 = to_timestamp('2015-6-1 08:10:30', 'UTC+7:00') assert t1 == 1433121030.0, t1 t2 = to_timestamp('2015-5-31 16:10:30', 'UTC-09:00') assert t2 == 1433121030.0, t2 print('ok')
Sign in to make a reply
在星期八我没有姓名