Skip to main content
 首页 » 编程设计

python之工作日作为字符串到数字

2025年05月04日19qlqwjy

我正在尝试将工作日作为字符串转换为 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' 

为什么它不会将 Frid​​ay 更改为 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 快了五倍。