35

我有这样的日期字符串:

'January 11, 2010'

我需要一个返回星期几的函数,比如

'mon', or 'monday'

等等。我在 Python 帮助中的任何地方都找不到这个。任何人?谢谢。

4

6 回答 6

76

您可能想使用以下strptime and strftime方法datetime

>>> import datetime
>>> datetime.datetime.strptime('January 11, 2010', '%B %d, %Y').strftime('%A')
'Monday'

或为'Mon'

>>> datetime.datetime.strptime('January 11, 2010', '%B %d, %Y').strftime('%a')
'Mon'
于 2013-05-27T05:23:29.887 回答
23

使用date.weekday() 以整数形式返回星期几,其中星期一为 0,星期日为 6。

http://docs.python.org/2/library/datetime.html#datetime.date.weekday

于 2013-05-27T05:21:12.707 回答
6

可以使用第三方解析器,例如dateutil

以及您原始问题的代码:

>>> from dateutil import parser
>>> parser.parse('January 11, 2010').strftime("%a")
'Mon'
>>> parser.parse('January 11, 2010').strftime("%A")
'Monday'
于 2013-05-27T05:21:08.250 回答
6

我认为最快的方法如下:

df[Date_Column].dt.weekday_name
于 2018-01-17T17:37:36.910 回答
3
>>> import time
>>> dateStr = 'January 11, 2010'
>>> timestamp = time.strptime(dateStr, '%B %d, %Y')
>>> timestamp
time.struct_time(tm_year=2010, tm_mon=1, tm_mday=11, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=11, tm_isdst=-1)
于 2013-05-27T05:20:31.310 回答
3
import time

time.strftime('%A')
于 2017-08-01T23:32:44.770 回答