我需要将星期几作为整数。
如果我使用以下日期mydate.day
,我希望在工作日也这样做。
我试过mydate.weekday
但是这并没有给我整数(星期日为0,星期六为6)。
有什么建议吗?
答案 0 :(得分:11)
如果您使用datetime.datetime
,请使用datetime.datetime.weekday
method:
>>> d = datetime.datetime.now()
>>> d
datetime.datetime(2014, 11, 24, 22, 47, 3, 80000)
>>> d.weekday() # Monday
0
>>> (d.weekday() + 1) % 7
1
你需要(... + 1)%7,因为该方法在星期一返回0,在星期日返回6。
<强>更新强>
您还可以使用datetime.datetime.isoweekday
,其中星期一返回1,星期日返回7。
>>> d.isoweekday() % 7
1
答案 1 :(得分:4)
我对你的措辞感到有些困惑:
(星期日0到星期一6)#星期一怎么样6?
但我想知道你是否想要isoweekday
:
>>> from datetime import datetime
>>> d = datetime.now()
>>> d.isoweekday()
1 # Monday
修改强>:
鉴于您希望星期日为0,您应该使用falsetru's answer(编辑后):
>>> d.isoweekday() % 7
或者只是将代码中的星期日转换为0。
答案 2 :(得分:1)
Python周一使用0。请参阅weekday文档。
import datetime
now = datetime.datetime(2014, 11, 23)
print now
print now.weekday()
这是一个星期天,所以打印出来:
2014-11-23 00:00:00
6
这是星期一的一个例子:
import datetime
now = datetime.datetime.now()
print now
print now.weekday()
这是星期一所以打印出来:
2014-11-24 07:47:19.827000
0