在 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
With strftime()
, 字符串格式%w
将星期日作为一周的第一天。和weekday()
,今天是星期一。
为什么这两者有不同的历史?
蟒蛇的strftime
函数模拟 c 库中的函数。因此,动机是%w
回报0
因为周日完全是由此而来。
相比之下,该方法date.weekday()
返回一个6
周日,因为它试图与年长得多的人的行为相匹配time
模块。在该模块中,时间通常由struct_time
并在其中,struct_time.tm_day
uses a 6
代表星期日。
那么正确的问题就变成了……为什么time.struct_time
将星期日表示为6
,当 C 库的tm
结构使用一个0
??
答案是……因为它确实如此。自从 Guido 第一次签入以来,这种行为就一直存在gmtime
and localtime
1993年开始运作。
Guido 不可能错……所以你最好问他。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)