'How to get day name from datetime
How can I get the day name (such as Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday) from a datetime object in Python?
So, for example, datetime(2019, 9, 6, 11, 33, 0) should give me "Friday".
Solution 1:[1]
>>> from datetime import datetime as date
>>> date.today().strftime("%A")
'Monday'
Solution 2:[2]
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 3:[3]
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)]
Solution 4:[4]
Alternative
You can use import time instead of datetime as following:
import time
WEEKDAYS = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
now = time.localtime()
weekday_index = now.tm_wday
print(WEEKDAYS[weekday_index])
Solution 5:[5]
import datetime
now = datetime.datetime.now()
print(now.dt.day_name())
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Community |
| Solution 2 | Nerxis |
| Solution 3 | user3769499 |
| Solution 4 | Appo |
| Solution 5 | berkayln |
