我正在尝试将工作日作为字符串转换为 python 中的 int,这就是我所拥有的
from datetime import date, datetime, time, time delta
from pytz import timezone
now = datetime.now(timezone('UTC'))
dt_tz = now.astimezone(timezone('US/Eastern'))
dt = dt_tz.replace(tzinfo=None)
weekday = 'Friday'
weekday_as_int = dt.strptime(weekday, "%A")
但是我得到了这个错误
ValueError: time data 'Friday' does not match format '%A'
为什么它不会将 Friday 更改为 int?
请您参考如下方法:
完整工作日的正确格式是 %A:
import time
weekday_as_int = time.strptime('friday', "%A").tm_wday
>>> weekday_as_int.tm_wday
4
星期一从零开始计数:
>>> time.strptime('Monday', "%A").tm_wday
0
一些时间:
@Rustem 的版本:
%%timeit
days = dict(zip(calendar.day_name, range(7)));
days['Friday']
10000 loops, best of 3: 104 µs per loop
这个版本:
%timeit time.strptime('Friday', "%A").tm_wday
10000 loops, best of 3: 19.7 µs per loop
看起来 strptime 快了五倍。
