How to get day name from datetime

Solution 1:

import datetime
now = datetime.datetime.now()
print(now.strftime("%A"))

See the Python docs for datetime.now, datetime.strftime and more on strftime.

Solution 2:

>>> from datetime import datetime as date
>>> date.today().strftime("%A")
'Monday'

Solution 3:

If you don't mind using another package, you can also use pandas to achieve what you want:

>>> my_date = datetime.datetime(2019, 9, 6, 11, 33, 0)
>>> pd.to_datetime(my_date).day_name()
'Friday'

It does not sound like a good idea to use another package for such easy task, the advantage of it is that day_name method seems more understandable to me than strftime("%A") (you might easily forget what is the right directive for the format to get the day name).

Hopefully, this could be added to datetime package directly one day (e.g. my_date.day_name()).

Solution 4:

import datetime
numdays = 7
base = datetime.date.today()
date_list = [base + datetime.timedelta(days=x) for x in range(numdays)]
date_list_with_dayname = ["%s, %s" % ((base + datetime.timedelta(days=x)).strftime("%A"),  base + datetime.timedelta(days=x)) for x in range(numdays)]