在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()
返回一个6
for Sunday,因为它试图匹配更旧的time
模块的行为.在该模块中,时间通常由a表示,struct_time
并且在此范围内,struct_time.tm_day
使用a 6
来表示星期日.
那么正确的问题就变成了......为什么在C库的结构使用了time.struct_time
一个星期日6
时将星期日表示为?tm
0
答案是......因为它确实如此.自Guido 于1993年首次登记gmtime
并localtime
运作以来,这种行为一直存在.
而Guido也不错......所以你最好问他.
最初,ISO 8601标准用于1 .. 7
代表周一至周日.为方便起见,后来0=Sunday
允许解释.
如果您想使用更一致的内容,请尝试使用 isoweekday
该0=Monday
标准是欧洲公约.我想这并不奇怪:P
归档时间: |
|
查看次数: |
12227 次 |
最近记录: |