# !/usr/bin/env python3 # -*- coding:utf-8 -*- 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') utc = re.match(r'^UTC(.)(\d{1,2})(.+)$', tz_str) if utc.group(1) == '+': utc_num = int(utc.group(2)) else: utc_num = -int(utc.group(2)) cday = cday.replace(tzinfo=timezone(timedelta(hours=utc_num))) stamp_cday = cday.timestamp() return stamp_cday # test 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('pass')
可以不用判断时区的正负 可以只用一个组 ([+-]\d{1,2}) 得到的 +07 +7 -9 -09 这几个字符串 都能直接int()
Sign in to make a reply
低调蓝LAN