超全!Python获取某一日期是“星期几”的六种方法!(Python六种方法轻松获取任意日期的星期几!超全攻略!)
原创
一、引言
在编程中,我们频繁需要获取某个日期是星期几。Python 提供了多种方法来获取日期的星期信息。本文将介绍六种常用的方法,帮助您轻松获取任意日期的星期几。
二、使用 datetime 模块
datetime 是 Python 标准库中的一个模块,提供了日期和时间的处理功能。以下是怎样使用 datetime 模块获取星期几的方法。
2.1 方法一:datetime.weekday()
datetime.weekday() 方法返回一个整数,描述星期几(0 描述星期一,6 描述星期日)。
import datetime
def get_weekday_1(date_str):
date_obj = datetime.datetime.strptime(date_str, '%Y-%m-%d')
weekday = date_obj.weekday()
weekdays = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
return weekdays[weekday]
# 示例
date_str = "2022-12-31"
print(get_weekday_1(date_str)) # 输出:星期六
2.2 方法二:datetime.strftime()
datetime.strftime() 方法可以将日期格式化为字符串,其中包括星期信息。
import datetime
def get_weekday_2(date_str):
date_obj = datetime.datetime.strptime(date_str, '%Y-%m-%d')
return date_obj.strftime('%A')
# 示例
date_str = "2022-12-31"
print(get_weekday_2(date_str)) # 输出:Saturday
三、使用 time 模块
time 模块也是 Python 的标准库之一,提供了时间处理功能。以下是怎样使用 time 模块获取星期几的方法。
3.1 方法三:time.localtime() 和 tm_wday
time.localtime() 方法将时间戳成为本地时间元组,其中 tm_wday 描述星期几(0 描述星期一,6 描述星期日)。
import time
def get_weekday_3(date_str):
time_tuple = time.strptime(date_str, '%Y-%m-%d')
weekday = time_tuple.tm_wday
weekdays = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
return weekdays[weekday]
# 示例
date_str = "2022-12-31"
print(get_weekday_3(date_str)) # 输出:星期六
3.2 方法四:time.strftime() 和 %w
time.strftime() 方法可以将时间格式化为字符串,其中包括星期信息。%w 描述星期几(0 描述星期日,6 描述星期六)。
import time
def get_weekday_4(date_str):
time_tuple = time.strptime(date_str, '%Y-%m-%d')
return time.strftime('%w', time_tuple)
# 示例
date_str = "2022-12-31"
print(get_weekday_4(date_str)) # 输出:6
四、使用 calendar 模块
calendar 模块是 Python 标准库中的一个模块,专门用于处理日历。以下是怎样使用 calendar 模块获取星期几的方法。
4.1 方法五:calendar.weekday()
calendar.weekday() 方法返回一个整数,描述星期几(0 描述星期一,6 描述星期日)。
import calendar
def get_weekday_5(date_str):
year, month, day = map(int, date_str.split('-'))
weekday = calendar.weekday(year, month, day)
weekdays = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
return weekdays[weekday]
# 示例
date_str = "2022-12-31"
print(get_weekday_5(date_str)) # 输出:星期六
4.2 方法六:calendar.monthcalendar()
calendar.monthcalendar() 方法返回一个二维数组,描述一个月的日历。我们可以从中获取星期几的信息。
import calendar
def get_weekday_6(date_str):
year, month, day = map(int, date_str.split('-'))
month_calendar = calendar.monthcalendar(year, month)
for week in month_calendar:
if week[0] == day:
return "星期一" if week[1] == 0 else "星期二" if week[2] == 0 else "星期三" if week[3] == 0 else "星期四" if week[4] == 0 else "星期五" if week[5] == 0 else "星期六" if week[6] == 0 else "星期日"
elif week[1] == day:
return "星期二"
elif week[2] == day:
return "星期三"
elif week[3] == day:
return "星期四"
elif week[4] == day:
return "星期五"
elif week[5] == day:
return "星期六"
elif week[6] == day:
return "星期日"
# 示例
date_str = "2022-12-31"
print(get_weekday_6(date_str)) # 输出:星期六
五、总结
本文介绍了六种获取日期星期几的方法,涵盖了 datetime、time 和 calendar 三个模块。在实际应用中,您可以凭借需求选择合适的方法。期待这篇文章能对您有所帮助。