**这题是对datetime和timestamp的简单应用,首先你要知道datetime是带时区信息的,因此基本思路是:
- 将用户输入的字符串格式的日期转换成datetime。
- 利用正则表达式从第2个参数提取出时区值。
- 将提取出的时区值转换成时区。
- 利用tzinfo属性将datetime强制设置成指定时区。
- 最后返回timestamp。
跟着上面的思路做,代码就很容易理解了:**
import re
from datetime import datetime, timezone, timedelta
def to_timestamp(dt_str, tz_str):
dt = datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S') # str-->datetime
tz_r = re.match(r'^UTC([+|-]\d{1,2}):00$', tz_str) #UTC中获取时区信息
tz = timezone(timedelta(hours=int(tz_r.group(1)))) # 创建时区UTC
dt = dt.replace(tzinfo=tz) # 利用tzinfo属性将datetime强制设置成指定时区
return dt.timestamp() # 返回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)