Discuss / Python / 交作业,想了两种思路

交作业,想了两种思路

Topic source

gd83594394

#1 Created at ... [Delete] [Delete and Lock User]

第一种思路:调时间不调时区,即把输入的时间按时区的差值回调到东八区,这样不需要用到timezone

def to_timestamp(dt_str, tz_str): return (datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S') - timedelta(hours = -8 + int(re.match(r'^(UTC|utc)([+|-]\d{1,2})\:00', tz_str).group(2)))).timestamp()

第二种思路:调时区不调时间,先强制把时区转换到对应的tz_str再求timestamp,不过这样需要用到timezone

def to_timestamp1(dt_str, tz_str): return datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S').replace(tzinfo=timezone(timedelta(hours=int(re.match(r'^(UTC|utc)([+|-]\d{1,2})\:00', tz_str).group(2))))).timestamp()

正则表达式部分都是相同的: re.match(r'^(UTC|utc)([+|-]\d{1,2})\:00', tz_str).group(2)

弱弱的问一句:这里的正则表达式[+|-]可以换成[+-]吧,为什么中间加个|

[+|-]意思是这里匹配的是+或者-,改成[+-]就变成匹配+-这两个字符了

葬花朴

#4 Created at ... [Delete] [Delete and Lock User]

[]里只匹配一个


  • 1

Reply