从Weekday int获取Day名称

时间:2016-03-31 18:57:56

标签: python date datetime

我有一个工作日整数(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"

7 个答案:

答案 0 :(得分:72)

使用calendar module

更加Pythonic
>>> import calendar
>>> list(calendar.day_name)
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

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

>>> list(calendar.day_abbr)
['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']

然后按您的意愿索引:

>>> calendar.day_name[1]
'Tuesday'

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

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

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

答案 1 :(得分:11)

我一直在使用日历模块:

import calendar
calendar.day_name[0]
'Monday'

答案 2 :(得分:1)

这很容易:

week = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
week[weekday]

答案 3 :(得分:1)

您可以使用根据您的参数获得项目的列表:

def dayNameFromWeekday(weekday):
    days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
    return days[weekday]

如果你传递了一个无效的数字,如果你传入了一个无效的数字,例如“8”,你可以在返回之前检查该项目是否存在:

def dayNameFromWeekday(weekday):
    days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
    return days[weekday] if 0 < weekday < len(days) else None

此功能可以像您期望的那样使用:

>>> dayNameFromWeekday(6)
Sunday
>>> print(dayNameFromWeekday(7))
None

我不确定是否有办法在datetime中内置此功能,但这仍然是一种非常有效的方法。

答案 4 :(得分:0)

您可以创建自己的列表并使用格式。

import datetime

days_ES = ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"]

t = datetime.datetime.now()
f = t.strftime("{%w} %Y-%m-%d").format(*days_ES)

print(f)

打印:

Lunes 2018-03-12

答案 5 :(得分:0)

您可以为此使用内置函数,例如假设您必须根据特定日期查找日期。

import calendar

month,day,year = 9,19,1995
ans =calendar.weekday(year,month,day)

print(calendar.day_name[ans])

calendar.weekday(年,月,日)-返回年份(1970–…),月(1–12),天(1)的星期几(0为星期一) –31)。

calendar.day_name -代表当前语言环境中星期几的数组

更多参考-https://docs.python.org/2/library/calendar.html#calendar.weekday

答案 6 :(得分:0)

您可以使用如下索引号:

FromSql