在Python中,将星期几datetime.strftime()显示为整数使用显示的结果与使用不同datetime.weekday().
>>> import datetime
>>> now = datetime.datetime.now()
>>> now.strftime('%A')
'Sunday'
>>> now.strftime('%w') # Day of the week as an integer.
'0'
>>> now.weekday() # Day of the week as an integer, a different way.
6
Run Code Online (Sandbox Code Playgroud)
使用时strftime(),字符串格式%w将星期日作为一周的第一天.随着weekday(),它是星期一.
为什么这两者有什么不同?
don*_*mus 13
Python的strftime函数在c库中模拟它.因此,周日%w回归的动机0完全来自于此.
相反,该方法date.weekday()返回一个6for Sunday,因为它试图匹配更旧的time模块的行为.在该模块中,时间通常由a表示,struct_time并且在此范围内,struct_time.tm_day使用a 6来表示星期日.
那么正确的问题就变成了......为什么在C库的结构使用了time.struct_time一个星期日6时将星期日表示为?tm0
答案是......因为它确实如此.自Guido 于1993年首次登记gmtime并localtime运作以来,这种行为一直存在.
而Guido也不错......所以你最好问他.
最初,ISO 8601标准用于1 .. 7代表周一至周日.为方便起见,后来0=Sunday允许解释.
如果您想使用更一致的内容,请尝试使用 isoweekday
该0=Monday标准是欧洲公约.我想这并不奇怪:P
| 归档时间: |
|
| 查看次数: |
12227 次 |
| 最近记录: |