Discuss / Python / 从来只有东八区,没有什么八点半区好吧!所以正则里是 小时在-12<>+12的范围,分钟全是00

从来只有东八区,没有什么八点半区好吧!所以正则里是 小时在-12<>+12的范围,分钟全是00

Topic source

SpringShaw

#1 Created at ... [Delete] [Delete and Lock User]
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
    r = re.match(r'^UTC([+-])([0-9]|1[0-2]|0[0-9]):00$',tz_str)
    h = int(r[1]+r[2])#提取出带符号的时区数字
    tz = timezone(timedelta(hours=h)) 
    dt = dt.replace(tzinfo=tz) #dt 设置好时区
    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')

  • 1

Reply