Python 标准库之 datetime 模块
Python 标准库中的 datetime 模块提供了和日期和时间相关的类:
类 | 功能 |
---|---|
datetime.date | 以年、月和日表示日历中的日期 |
datetime.time | 以小时、分钟和秒表示一天中的时间 |
datetime.datetime | 以年、月、日、小时、分钟和秒表示日期和时间 |
datetime.timedelta | 表示一个时间段,即两个日期时间之间的差 |
1. datetime.date 类
date 类以年、月和日表示日历中的日期,示例如下:
>>> from datetime import date
>>> date.today()
datetime.date(2020, 5, 22)
>>> d = date(2020, 5, 1)
- 从 datetime 模块中引入 date 类
- date.today() 返回表示今天的日期对象
-
构造日期 2020 年 5 月 1 日
d.year 2020 d.month 5 d.day 1
-
d.year 返回日期对象的年份
- d.month 返回日期对象的月份
-
d.day 返回日期对象的日
d.weekday() 4 d.isoweekday() 5 d.isoformat() '2020-05-01' d.isocalendar() (2020, 18, 5)
-
d.weekday() 返回一星期中的第几天, 星期一是 0
- d.isoweekday() 返回一星期中的第几天, 星期一是 1
- d.isoformat() 以格式 YYYY-MM-DD 返回日期的字符串形式
-
d.isocalendar() 返回一个元组
- 第 0 项是年份
- 第 1 项是这一年的第几周
- 第 2 项是周几
d.ctime() 'Fri May 1 00:00:00 2020' d.strftime("%Y-%m-%d") '2020-05-01'
-
d.ctime() 返回一个表示日期的字符串
-
d.strftime() 返回指定格式的日期字符串
- %Y 表示年份
- %m 表示月份
- %d 表示日
e = d.replace(year=2000, month=12) e datetime.date(2000, 12, 1)
-
d.replace() 替换年份、月份、日期生成一个新日期
- 将年份替换为 2000
- 将月份替换为 12
2. datetime.time 类
time 类以小时、分钟和秒表示一天中的时间,示例如下:
>>> from datetime import time
>>> t = time(18, 19, 20, 21)
>>> t.hour
18
>>> t.minute
19
>>> t.second
20
>>> t.microsecond
21
- 从 datetime 模块中引入 time 类
-
构造时间 18 时 19 分 20 秒 21 微秒
- t.hour 返回小时
- t.minute 返回分钟
- t.second 返回秒
- t.microsecond 返回微秒
t.isoformat() '18:19:20.000021' t.strftime("%H:%M:%S:%f") '18:19:20:000021'
-
t.isoformat() 返回 ISO 8601 格式的时间字符串
-
t.strftime() 返回指定格式的时间格式
- %H 表示小时
- %M 表示分钟
- %S 表示秒
- %f 表示微秒
u = t.replace(hour=8, minute=8, second = 8) u datetime.time(8, 8, 8, 21)
-
t.replace() 替换小时、分钟、秒生成一个新时间
- 将小时替换为 8
- 将分钟替换为 8
- 将秒替换为 8
3. datetime.datetime 类
datetime 类年、月、日、小时、分钟和秒表示日期和时间,包含 date 对象和 time 对象的所有信息,示例如下:
>>> from datetime import datetime,date,time
>>> datetime.today()
datetime.datetime(2020, 5, 22, 12, 27, 34, 896212)
- 从 datetime 模块中引入类 datetime、类 date、类 time
-
datetime.today() 返回表示今天的日期对象,包括年、月、日、小时、分钟、秒和微秒
d = date(2020,12,12) t = time(8,8,8,8) dt = datetime.combine(d, t) dt datetime.datetime(2020, 12, 12, 8, 8, 8, 8)
-
构造日期对象 d
- 构造时间对象 t
-
datetime.combine(d, t) 将日期对象 d 和时间对象 t 组合形成一个日期时间对象 dt
dt.isoformat() '2020-12-12T08:08:08.000008' dt.strftime("%Y-%m-%d %H:%M:%S:%f") '2020-12-12 08:08:08:000008'
-
t.isoformat() 返回 ISO 8601 格式的时间字符串
-
t.strftime() 返回指定格式的时间格式
- %Y 表示年份
- %m 表示月份
- %d 表示日
- %H 表示小时
- %M 表示分钟
- %S 表示秒
- %f 表示微秒
u = dt.replace(year=2000, hour=20) u datetime.datetime(2000, 12, 12, 20, 8, 8, 8) u.year 2000 u.hour 20
-
dt.replace() 替换年、月、日、小时、分钟、秒生成一个新时间
- 将年份替换为 2000
- 将小时替换为 20
4. datetime.timedelta 类
timedelta 对象表示一个时间段,即两个日期 (date) 或日期时间 (datetime) 之间的差。timedelta 接受命名参数:weeks、days、hours、minutes、seconds、milliseconds、microseconds,示例如下:
>>> from datetime import date,timedelta
>>> d = date(2020,12,12)
>>> delta = timedelta(days=3)
>>> d - delta
datetime.date(2020, 12, 9)
- 从 datetime 模块中导入相关的类
- 创建日期对象 2020 年 12 月 12 日
- 创建长度为 3 天的时间段
-
日期 d 前三天的日期是 2020 年 12 月 9 日
dt = datetime(2020, 12, 12, 8, 8, 8, 8) delta = timedelta(days = 3, hours = 3) dt - delta datetime.datetime(2020, 12, 9, 5, 8, 8, 8)
-
从 datetime 模块中导入相关的类
- 创建日期对象 2020 年 12 月 12 日 8 时 8 分 8 秒 8 微秒
- 创建长度为 3 天 3 小时的时间段
- 日期 d 前 3 天 3 小时的日期是 2020 年 12 月 9 日 5 时 8 分 8 秒 8 微秒
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,邮箱:80764001@qq.com,予以删除。