python时间日期处理模块datetime详解

1. datetime模块

datetime是python中处理日期时间的标准库,datetime模块中常用的类包括date, time, datetime, timedelta,使用这些对象支持日期时间的数学运算和更有效的解析其属性用于格式化输出。

下面,逐个介绍这4个时间处理类

2. datetime.date

datetime.date 一个理想化的简单型日期是一个理想化的简单型日期,它假设当今的公历在过去和未来永远有效,主要用于处理年月日期时间。

使用指定的年月日,可以快速构造一个date对象

from datetime import date

date_obj = date(2022, 5, 29)

print(date_obj.year)        # 2022
print(date_obj.month)       # 5
print(date_obj.day)         # 29

datetime.date只支持到年月日,不能处理小时分钟秒,下表是date类的常用方法和解释

方法 描述
date.today 返回当前的本地日期
date.fromtimestamp 返回对应于 POSIX 时间戳的当地时间,类型是datetime.date
date.fromisoformat 根据传入的date_string参数返回对应的date对象,date_string字符串必须满足YYYY-MM-DD的时间格式
date.fromisocalendar 返回指定 year, week 和 day 所对应 ISO 历法日期的 date
date.isocalendar 返回一个由三部分组成的 named tuple 对象
date.isoformat 返回一个符合 YYYY-MM-DD 格式的字符串,是date.fromisoformat() 的逆操作
date.isoweekday 返回一个整数代表星期几,1代表星期一,7代表星期日
date.weekday 返回一个整数代表星期几,0表示星期一,6表示星期日
date.replace 根据传入的实参返回一个新的date对象,如果没有传入任何实参,则返回一个原date对象相同的日期
date.strftime 根据format参数返回指定格式的日期字符串
date.timetuple 返回一个 time.struct_time对象,和time.localtime() 所返回的类型一致

3. datetime.datetime

date对象只能处理年月日,而datetime.datetime对象可以处理到时分秒,拥有更高的时间精度,datetime与date一样假定当前的格列高利历向前后两个方向无限延伸,同时像time对象一样假定每一天恰好有 3600*24 秒。

datetime构造函数

datetime.datetime(year, month, day, hour=0, minute=0, 
second=0, microsecond=0, tzinfo=None, *, fold=0)

创建一个datetime对象,并输出它的各种属性

from datetime import datetime

date_time = datetime(year=2022, month=6, day=2, hour=20, minute=23, second=30)
print(date_time.year)               # 年
print(date_time.month)              # 月
print(date_time.day)                # 日
print(date_time.hour)               # 小时
print(date_time.minute)             # 分钟
print(date_time.second)             # 秒
print(date_time.microsecond)        # 毫秒

下表是datetime对象常用的方法

方法 描述
datetime.now 返回当前时间
datetime.utcnow 返回当前UTC时间
datetime.fromtimestamp 返回POSIX 时间戳对应的本地日期和时间
datetime.utcfromtimestamp 返回POSIX 时间戳的对应的UTC时间
datetime.timestamp 返回对应于datetime实例的 POSIX 时间戳
datetime.timetuple 返回一个 time.struct_time对象
datetime.replace 返回一个具有同样属性值的 datetime
datetime.strftime 将datetime对象转为指定格式的字符串
datetime.strptime 将字符串转为datetime对象,转换时要求字符串内容符合指定的格式
datetime.fromisocalendar 返回以 year, week 和 day值指明的ISO历法日期所对应的 datetime
datetime.fromisoformat 将符合isoformat时间格式的字符串转为datetime对象

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案