Python datetime模块详解
时间是计算机编程中非常常见的一个概念。Python中的datetime模块提供了方便的时间处理函数和类。在本文中,我们将详细讲解datetime模块的用法。
datetime模块概述
datetime模块可以用来操作日期和时间。
datetime类
该模块提供了以下类:
- datetime.date
Date对象用来表示一个日期(年、月、日)。日期对象是不可变的,意味着创建后,它的值不能被修改。 - datetime.time
Time对象用来表示一个时间(小时、分钟、秒、微秒)。时间对象也是不可变的。 - datetime.datetime
Datetime对象是一个日期和时间的组合。它包含了日期和时间的所有信息,小时、分钟、秒、微秒和时区。 - datetime.timedelta
Timedelta对象表示时间间隔,比如两个日期或时间之间的差值。 - datetime.tzinfo
Tzinfo是时区信息的基类,它可以用来表示时区。
时间格式化
datetime模块提供了strftime方法,可以将datetime对象格式化为字符串,也提供了strptime方法,可以将字符串解析成datetime对象。
使用datetime模块进行时间操作
下面是一些datetime模块的基本操作:
import datetime
# 创建一个date对象
d = datetime.date(2022, 1, 20)
print(d) # 输出: 2022-01-20
print(d.year) # 输出: 2022
print(d.month) # 输出: 1
print(d.day) # 输出: 20
# 创建一个time对象
t = datetime.time(8, 45, 30)
print(t) # 输出: 08:45:30
print(t.hour) # 输出: 8
print(t.minute) # 输出: 45
print(t.second) # 输出: 30
# 创建datetime对象
dt = datetime.datetime(2022, 1, 20, 8, 45, 30)
print(dt) # 输出: 2022-01-20 08:45:30
print(dt.year) # 输出: 2022
print(dt.month) # 输出: 1
print(dt.day) # 输出: 20
print(dt.hour) # 输出: 8
print(dt.minute) # 输出: 45
print(dt.second) # 输出: 30
# 初始化当前时间
import datetime
now = datetime.datetime.now()
print(now) # 输出当前时间
# 两个datetime之间的差值
d1 = datetime.datetime(2022, 1, 20, 8, 45, 30)
d2 = datetime.datetime(2022, 1, 21, 9, 46, 31)
delta = d2 - d1
print(delta) # 输出: 1 day, 1:01:01
print(delta.days) # 输出: 1
print(delta.total_seconds()) # 输出: 90241.0
datetime字符串格式化
datetime模块提供了strftime方法,可以将datetime对象格式化为字符串:
import datetime
dt = datetime.datetime(2022, 1, 20, 8, 45, 30)
s = dt.strftime('%Y-%m-%d %H:%M:%S')
print(s) # 输出: '2022-01-20 08:45:30'
可以利用strftime函数设置输出日期的字符串格式,常用的格式有:
标志 | 含义 | 示例 |
---|---|---|
%Y | 年(四位数) | 2022 |
%m | 月 | 01-12 |
%d | 日 | 01-31 |
%H | 小时(24小时制) | 00-23 |
%M | 分钟 | 00-59 |
%S | 秒 | 00-59 |
%f | 微秒 | 000000-999999 |
%z | UTC时区偏移量 | +0000 或 -0400 |
%Z | 时区名称 | CST, EST, UTC, 等等 |
%j | 一年中的第几天 | 001-366 |
%U | 一年中的第几周(以周日为一周的第一天) | 00-53 |
%W | 一年中的第几周(以周一为一周的第一天) | 00-53 |
%c | locale的日期和时间 | Mon Sep 30 07:06:05 2013 |
%x | locale的日期 | 09/30/13 |
%X | locale的时间 | 07:06:05 |
%p | locale的上午或下午 | AM, PM |
%a | 星期几的简写 | Sun, Mon, ..., Sat |
%A | 星期几的全称 | Sunday, Monday, ..., Saturday |
%w | 星期几的数字表示 | 0(周日) ~ 6(周六) |
另外可以用strptime方法将字符串解析成datetime对象:
import datetime
s = '2022-01-20 08:45:30'
dt = datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S')
print(dt) # 输出: datetime.datetime(2022, 1, 20, 8, 45, 30)
在strptime方法的第二个参数中,需要指定输入的字符串格式。
总结
datetime模块提供了方便的时间处理函数和类,可以非常方便地进行日期和时间的操作。在本文中,我们讲解了datetime模块的基本用法,并提供了示例。通过掌握这些知识,可以更加灵活地使用Python进行时间处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python datetime模块详解 - Python技术站