Python datetime.date类详解:创建、属性、方法及实用示例

datetime.date 类在 Python 的 datetime 模块中用来表示一个纯粹的日期,即不包含时间信息,仅包含年、月、日三个属性。以下是对 datetime.date 类的详细说明和使用示例:

构造方法

创建一个 datetime.date 对象,需要提供年、月、日作为参数:

import datetime

date_obj = datetime.date(year, month, day)

其中:

  • year:四位整数,表示年份。
  • month:一至十二的整数,表示月份。
  • day:一至三十(或三十一,取决于月份和是否为闰年)的整数,表示日期。

属性

  • datetime.date 对象具有以下属性,用于获取其构成部分:
  • year:返回年份。
  • month:返回月份(1到12)。
  • day:返回日期(1到31,根据月份不同)。

实例方法

  • today(): 静态方法,返回一个表示当前本地日期的 datetime.date 对象。
current_date = datetime.date.today()
print(current_date)
  • fromtimestamp(timestamp): 静态方法,从给定的时间戳(通常表示自1970年1月1日以来的秒数)创建一个 datetime.date 对象。注意,时间戳不含时区信息,因此结果依赖于本地时间。
timestamp = 16.jpg" alt="Unix timestamp">609431431  # Unix timestamp
date_from_timestamp = datetime.date.fromtimestamp(timestamp)
print(date_from_timestamp)

实用方法

  • weekday(): 返回一个整数,表示一周中的第几天(0代表周一,6代表周日)。
weekday_num = date_obj.weekday()
print(f"The date falls on weekday {weekday_num}.")
  • isocalendar(): 返回一个三元组(年份,周数,星期几),按照ISO 8601标准计算。这里的周数是一年中的第几周,星期几同样遵循0(周一)到6(周日)的表示方式。
iso_data = date_obj.isocalendar()
print(f"ISO week data: Year={iso_data[0]}, Week={iso_data[1]}, Day={iso_data[2]}")

示例代码

import datetime

# 创建一个表示特定日期的 date 对象
specific_date = datetime.date(2024, 4, 16)
print("Specific date:", specific_date)

# 获取日期的构成部分
year = specific_date.year
month = specific_date.month
day = specific_date.day
print(f"Year: {year}, Month: {month}, Day: {day}")

# 获取今天的日期
today = datetime.date.today()
print("Today's date:", today)

# 计算日期是一周中的哪一天
weekday_num = today.weekday()
print(f"Today is weekday number {weekday_num}.")

# 获取ISO周数据
iso_week_data = today.isocalendar()
print(f"ISO week data for today: Year={iso_week_data[0]}, Week={iso_week_data[1]}, Day={iso_week_data[2]}")

通过上述介绍和示例,你应该对 Python datetime.date 类有了全面的认识,包括如何创建 date 对象、访问其属性、使用实例方法以及进行一些常见的日期操作。在处理仅涉及日期而不涉及时间的场景时,datetime.date 类是非常有用的工具。


存档地址:https://www.yuque.com/worthstudy/study/yggnegryerwp8i1u?singleDoc# 《datetime.date 类》

© 版权声明
THE END
喜欢就点赞支持一下吧,如果觉得不错或日后有所需要,可以收藏文章和关注作者哦。
点赞0打赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容