python – strptime是否有通配符格式指令?

我正在使用像这样的strptime:

import time
time.strptime("+10:00","+%H:%M")

但是“10:00”也可能是“-10:00”(与UTC的时区偏移),这将破坏上述命令.我可以用

time.strptime("+10:00"[1:],"%H:%M")

但理想情况下,我会发现在格式代码前使用通配符更具可读性.

Python的strptime / strftime是否存在这样的通配符运算符?

解决方法:

没有通配符运算符. strptime支持的list of format directives是在docs中.

您正在寻找的是%z格式指令,它支持表单形式为HHMM或-HHMM的时区.虽然datetime.strftime支持它已有一段时间了,但它仅在strptime starting in Python 3.2中得到支持.

在Python 2上,处理此问题的最佳方法可能是使用datetime.datetime.strptime,手动处理负偏移,并得到datetime.timedelta

import datetime

tz = "+10:00"

def tz_to_timedelta(tz):
    min = datetime.datetime.strptime('', '')
    try:
        return -(datetime.datetime.strptime(tz,"-%H:%M") - min)
    except ValueError:
        return datetime.datetime.strptime(tz,"+%H:%M") - min

print tz_to_timedelta(tz)

在Python 3.2中,删除:并使用%z:

import time
tz = "+10:00"
tz_toconvert = tz[:3] + tz[4:]
tz_struct_time = time.strptime(tz_toconvert, "%z")
上一篇:python的各种time


下一篇:python – 加速datetime.strptime