从Weekday int获取Day名称

GER*_*GER 48 python datetime date

我有一个工作日整数(0,1,2 ...),我需要得到日期名称('星期一','星期二',...).

是否有内置的Python函数或这样做的方法?

这是我写的函数,它可以工作,但我想从内置的datetime lib中获取一些东西.

def dayNameFromWeekday(weekday):
    if weekday == 0:
        return "Monday"
    if weekday == 1:
        return "Tuesday"
    if weekday == 2:
        return "Wednesday"
    if weekday == 3:
        return "Thursday"
    if weekday == 4:
        return "Friday"
    if weekday == 5:
        return "Saturday"
    if weekday == 6:
        return "Sunday"
Run Code Online (Sandbox Code Playgroud)

daw*_*awg 86

使用日历模块更加Pythonic :

>>> import calendar
>>> list(calendar.day_name)
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用常用日名称缩写:

>>> list(calendar.day_abbr)
['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
Run Code Online (Sandbox Code Playgroud)

然后索引你想要的:

>>> calendar.day_name[1]
'Tuesday'
Run Code Online (Sandbox Code Playgroud)

(如果星期一不是一周的第一天,请使用setfirstweekday进行更改)

使用日历模块具有可识别位置的优点:

>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'de_DE')
'de_DE'
>>> list(calendar.day_name)
['Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag', 'Sonntag']
Run Code Online (Sandbox Code Playgroud)


Sha*_*ski 11

我一直在使用日历模块:

import calendar
calendar.day_name[0]
'Monday'
Run Code Online (Sandbox Code Playgroud)

  • 比将日期代码硬编码到代码中更好.`calendar`也适用于`locale`,因此日期名称会根据需要自动调整. (2认同)

小智 9

如果您只需要从datetime对象打印日期名称,您可以像这样使用:

current_date = datetime.now
current_date.strftime('%A')  # will return "Wednesday"
current_date.strftime('%a')  # will return "Wed"
Run Code Online (Sandbox Code Playgroud)