Python之datetime模块
1. python的datetime模块介绍
Python的datetime模块是用于操作日期和时间的标准库。它提供了处理日期、时间、时间间隔和日期时间算术等功能。在使用datetime模块时,常用的方法可以分为以下几类
-
date类:表示日期,包含年、月、日等属性,主要方法有:
- date(year, month, day):构造一个date对象。
- today():返回今天的日期。
- fromtimestamp(timestamp):根据时间戳创建一个date对象。
- isoformat():将日期格式化为ISO标准格式。
- strftime():将日期格式化为指定格式的字符串。
-
time类:表示时间,包含时、分、秒、微秒等属性,主要方法有:
- time(hour=0, minute=0, second=0, microsecond=0):构造一个time对象。
- now([tz]):返回当前时间。
- fromtimestamp(timestamp[, tz]):根据时间戳创建一个time对象。
- isoformat():将时间格式化为ISO标准格式。
- strftime():将时间格式化为指定格式的字符串。
-
datetime类:表示日期和时间,是date和time类的结合体,包含年、月、日、时、分、秒、微秒等属性。主要方法有:
- datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0):构造一个datetime对象。
- now([tz]):返回当前日期和时间。
- fromtimestamp(timestamp[, tz]):根据时间戳创建一个datetime对象。
- isoformat():将日期时间格式化为ISO标准格式。
- strftime():将日期时间格式化为指定格式的字符串。
-
timedelta类:表示两个日期或时间之间的时间差,主要方法有:
- timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0):构造一个timedelta对象。
- days:表示天数。
- seconds:表示秒数。
- microseconds:表示微秒数。
- total_seconds():将时间差转换为秒数。
- timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0):构造一个timedelta对象。
-
tzinfo类:表示时区信息,它是一个抽象类,主要方法有:
- utcoffset(dt):返回本地时间与UTC时间之间的时间差。
- tzname(dt):返回时区名称。
- dst(dt):返回夏令时的时间差。
-
datetime模块还提供了一些其它函数,例如:
- time.sleep():暂停程序一段时间。
- datetime.datetime.strptime():将字符串解析为datetime对象。
- datetime.datetime.combine():将日期和时间结合为一个datetime对象。 总之,datetime模块提供了丰富的日期和时间处理功能,使得Python成为一个优秀的日期和时间处理工具。
2.datetime中的date类相关方法
date类是Python datetime模块中用于表示日期的类,包含年、月、日等属性,常用的方法有以下几种
2.1 datetime.date(year, month, day)构造一个date对象
构造一个date对象,参数year、month、day分别表示年、月、日,返回一个date对象
import datetime
d = datetime.date(2021, 10, 1)
print(d) # 输出 2021-10-01
2.2 datetime.date.today() 返回当前日期的date对象
返回当前日期(今天)的date对象
import datetime
today = datetime.date.today()
print(today) # 输出当前日期,例如 2022-04-19
2.3 fromtimestamp(timestamp)根据给定的时间戳创建一个date对象。
根据给定的时间戳(以秒为单位)创建一个date对象。
import datetime
t = 1640995200 # 2022年1月1日的时间戳
d = datetime.date.fromtimestamp(t)
print(d) # 输出 2022-01-01
2.4 isoformat()将日期格式化为ISO标准格式
将日期格式化为ISO标准格式“YYYY-MM-DD”,返回一个字符串。
import datetime
d = datetime.date(2022, 4, 19)
s = d.isoformat()
print(s) # 输出 2022-04-19
2.5 strftime(format)将日期格式化为指定格式的字符串
将日期格式化为指定格式的字符串,返回一个字符串。常用的格式化字符串有:
import datetime
d = datetime.date(2022, 4, 19)
s = d.strftime("%Y-%m-%d")
print(s) # 输出 2022-04-19
2.6 year返回date对象的年份
返回date对象的年份。
import datetime
d = datetime.date(2022, 4, 19)
year = d.year
print(year) # 输出 2022
2.7 month返回date对象的月份
返回date对象的月份
import datetime
d = datetime.date(2022, 4, 19)
month = d.month
print(month) # 输出 4
2.8 day 返回date对象的日期
返回date对象的日期
import datetime
d = datetime.date(2022, 4, 19)
day = d.day
print(day) # 输出 19
3.datetime中的time类相关方法
time类是Python datetime模块中用于表示时间的类,包含时、分、秒、微秒等属性,常用的方法有以下几种
3.1 datetime.time构造一个time对象
构造一个time对象,参数hour、minute、second、microsecond分别表示小时、分钟、秒和微秒,都是可选的,默认为0,返回一个time对象
import datetime
t = datetime.time(14, 30, 0)
print(t) # 输出 14:30:00
3.2 datetime.time.now(tz=None)返回一个包含当前时间的time对象
返回一个包含当前时间的time对象。tz是一个可选的时区对象,默认为None,表示本地时间。
import datetime
t = datetime.time.now()
print(t) # 输出当前时间,例如 13:42:55.052342
3.3 fromtimestamp根据给定的时间戳,创建一个time对象
根据给定的时间戳(以秒为单位)创建一个time对象,有一个可选的时区参数
import datetime
t = datetime.time.fromtimestamp(1640995200)
print(t) # 输出 00:00:00
3.4 isoformat()将时间格式化为ISO标准格式
将时间格式化为ISO标准格式“HH:MM:SS.ssssss”,返回一个字符串。
import datetime
t = datetime.time(14, 30, 0, 200000)
s = t.isoformat()
print(s) # 输出 14:30:00.200000
3.5 strftime(format)将时间格式化为指定格式的字符串
将时间格式化为指定格式的字符串,返回一个字符串。常用的格式化字符串有:
- %H:代表小时,比如下午2点,格式化为“%H”;
- %M:代表分钟,比如30分,格式化为“%M”;
- %S:代表秒数,比如10秒,格式化为“%S”;
- %f:代表微秒数,比如500000微秒,格式化为“%f”。
import datetime
t = datetime.time(14, 30, 0, 200000)
s = t.strftime("%H:%M:%S.%f")
print(s) # 输出 14:30:00.200000
3.6 hour返回time对象的小时数
返回time对象的小时数。
import datetime
t = datetime.time(14, 30, 0, 200000)
hour = t.hour
print(hour) # 输出 14
3.7 minute返回time对象的分钟数
返回time对象的分钟数
import datetime
t = datetime.time(14, 30, 0, 200000)
minute = t.minute
print(minute) # 输出 30
3.8 second返回time对象的秒数
返回time对象的秒数。
import datetime
t = datetime.time(14, 30, 0, 200000)
second = t.second
print(second) # 输出 0
3.9 microsecond返回time对象的微秒数
import datetime
t = datetime.time(14, 30, 0, 200000)
microsecond = t.microsecond
print(microsecond) # 输出 200000
3.10 replace(year=None, month=None, day=None, hour=None, minute=None, second=None, microsecond=None, tzinfo=None)
返回一个替换原datetime部分的新datetime对象。
3.11 combine(date, time)将date对象和time对象组合成datetime对象
将date对象和time对象组合成datetime对象。
4 datetime中的datetime类相关方法
datetime类是Python datetime模块中用于表示日期和时间的类,包含年、月、日、时、分、秒、微秒等属性。常用的方法有以下几种:
4.1 datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)构造一个datetime对象
构造一个datetime对象,参数year、month、day、hour、minute、second、microsecond分别表示年、月、日、时、分、秒和微秒,都是可选的,默认为0,返回一个datetime对象
import datetime
dt = datetime.datetime(2022, 4, 19, 13, 45, 0)
print(dt) # 输出 2022-04-19 13:45:00
4.2now(tz=None)返回一个包含当前日期和时间的datetime对象
返回一个包含当前日期和时间的datetime对象。tz是一个可选的时区对象,默认为None,表示本地时间。
import datetime
dt = datetime.datetime.now()
print(dt) # 输出当前日期和时间,例如 2022-04-19 13:42:55.052342
4.3 romtimestamp(timestamp[, tz])根据给定的时间戳创建一个datetime对象
根据给定的时间戳(以秒为单位)创建一个datetime对象,有一个可选的时区参数。
import datetime
dt = datetime.datetime.fromtimestamp(1640995200)
print(dt) # 输出 2021-12-31 16:00:00
4.4 isoformat()将日期时间格式化为ISO标准格式
将日期时间格式化为ISO标准格式“YYYY-MM-DDTHH:MM:SS.ssssss”,返回一个字符串。
import datetime
dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
s = dt.isoformat()
print(s) # 输出 2022-04-19T13:45:00.200000
4.5 strftime(format)将日期时间格式化为指定格式的字符串
将日期时间格式化为指定格式的字符串,返回一个字符串。常用的格式化字符串有:
- %Y:代表年份,比如2019年,格式化为“%Y”;
- %m:代表月份,比如5月,格式化为“%m”;
- %d:代表日期,比如20日,格式化为“%d”;
- %H:代表小时,比如下午2点,格式化为“%H”;
- %M:代表分钟,比如30分,格式化为“%M”;
- %S:代表秒数,比如10秒,格式化为“%S”;
- %f:代表微秒数,比如500000微秒,格式化为“%f”
import datetime
dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
s = dt.strftime("%Y-%m-%d %H:%M:%S.%f")
print(s) # 输出 2022-04-19 13:45:00.200000
4.6 year返回datetime对象的年份
返回datetime对象的年份。
import datetime
dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
year = dt.year
print(year) # 输出 2022
4.7 month返回datetime对象的月份
返回datetime对象的月份。
import datetime
dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
month = dt.month
print(month) # 输出 4
4.8 day返回datetime对象的日期
返回datetime对象的日期
import datetime
dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
day = dt.day
print(day) # 输出 19
4.9 hour返回datetime对象的小时数
返回datetime对象的小时数。
import datetime
dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
hour = dt.hour
print(hour) # 输出 13
4.10 minute返回datetime对象的分钟数
返回datetime对象的分钟数
import datetime
dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
minute = dt.minute
print(minute) # 输出 45
4.11 second返回datetime对象的秒数
返回datetime对象的秒数。
import datetime
dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
second = dt.second
print(second) # 输出 0
4.12 microsecond返回datetime对象的微秒数
返回datetime对象的微秒数
import datetime
dt = datetime.datetime(2022, 4, 19, 13, 45, 0, 200000)
microsecond = dt.microsecond
print(microsecond) # 输出 200000
5 datetime中的timedelta类相关方法
timedelta类是Python datetime模块中用于表示时间间隔的类,可以表示一段时间的天数、秒数、毫秒数等。常用的方法有以下几种
5.1 timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)构造一个timedelta对象
构造一个timedelta对象,参数days、seconds、microseconds、milliseconds、minutes、hours、weeks分别表示天数、秒数、微秒数、毫秒数、分钟数、小时数和周数,都是可选的,默认为0
import datetime
td = datetime.timedelta(days=3, hours=2, minutes=30)
print(td) # 输出 3 days, 2:30:00
5.2 total_seconds()将timedelta对象表示的时间间隔以秒为单位返回
将timedelta对象表示的时间间隔以秒为单位返回,返回一个整数。注意,该方法只在Python2.7及以上版本中支持。
import datetime
td = datetime.timedelta(days=3, hours=2, minutes=30)
seconds = td.total_seconds()
print(seconds) # 输出 267600.0
5.3 days返回timedelta对象表示的天数
返回timedelta对象表示的天数。
import datetime
td = datetime.timedelta(days=3, hours=2, minutes=30)
days = td.days
print(days) # 输出 3
5.4 seconds返回timedelta对象表示的秒数
import datetime
td = datetime.timedelta(days=3, hours=2, minutes=30)
seconds = td.seconds
print(seconds) # 输出 9000
5.5 microseconds返回timedelta对象表示的微秒数
返回timedelta对象表示的微秒数。
import datetime
td = datetime.timedelta(days=3, hours=2, minutes=30)
microseconds = td.microseconds
print(microseconds) # 输出 0
5.6 __ add __(other)
实现加法操作,返回一个新的timedelta对象,表示两个timedelta对象的时间间隔之和。
import datetime
td1 = datetime.timedelta(days=3)
td2 = datetime.timedelta(hours=2, minutes=30)
td3 = td1 + td2
print(td3) # 输出 3 days, 2:30:00
5.7 __ sub __(other)
实现减法操作,返回一个新的timedelta对象,表示两个timedelta对象的时间间隔之差。
import datetime
dt1 = datetime.datetime(2022, 4, 19, 13, 45, 0)
dt2 = datetime.datetime(2022, 4, 16, 12, 0, 0)
td = dt1 - dt2
print(td) # 输出 3 days, 1:45:00
5.8 __ mul __(n)
实现乘法操作,返回一个新的timedelta对象,表示该timedelta对象的时间间隔乘以一个整数n。
import datetime
td1 = datetime.timedelta(days=3)
td2 = td1 * 2
print(td2) # 输出 6 days, 0:00:00
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)