import re
from datetime import datetime,timedelta,timezone
def to_timestamp(dt_str, tz_str):
cday = datetime.strptime(dt_str,'%Y-%m-%d %H:%M:%S')#字符串转为时间
utc_group = re.match(r'([UTC]+)([+-])(\d+):(\d)',tz_str)#字符串匹配,分组
i = int(utc_group.group(3))#时区数字
if utc_group.group(2) == '+':#时区正负号
tz_utc = timezone(timedelta(hours=i))
elif utc_group.group(2) == '-':
tz_utc = timezone(timedelta(hours=-i))
dt = cday.replace(tzinfo=tz_utc)#给tzinfo属性赋值
return dt.timestamp()
#测试
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')
题目来源:廖雪峰老师的python教程-常用内建模块-datetime
本文介绍了一种将特定格式的日期时间字符串结合时区信息转换为Unix时间戳的方法。通过使用Python的datetime和re模块,实现了从字符串到datetime对象的转换,并进一步处理时区信息,最终得到对应的时间戳值。通过两个示例验证了该方法的正确性。
2747

被折叠的 条评论
为什么被折叠?



