datetime
Python 的 datetime
模块是处理日期和时间的标准库,提供了丰富的功能来操作日期和时间。以下是对 datetime
模块的详细介绍,包括其主要类和常用方法。可以方便地处理各种与时间相关的任务。
主要类
datetime.date
- 表示日期(年、月、日)。
- 主要方法:
today()
: 返回当前日期。fromisoformat(date_string)
: 从 ISO 格式的字符串创建日期对象。
pythonimport datetime da = '2022-12-15' today = datetime.date.today() fmt_date = datetime.date.fromisoformat(da) print(today) # 输出当前日期 print(fmt_date, type(fmt_date)) # 2022-12-15 <class 'datetime.date'>
1
2
3
4
5
6
7
8
9datetime.time
- 表示时间(时、分、秒、微秒)。
- 主要方法:
replace(hour, minute, second, microsecond)
: 替换时间的各个部分。
pythont = datetime.time(12, 30, 45) print(t) # 输出 12:30:45
1
2datetime.datetime
- 表示日期和时间的组合。
- 主要方法:
now()
: 返回当前日期和时间。fromtimestamp(timestamp)
: 从时间戳创建日期时间对象。strftime(format)
: 格式化日期时间为字符串。
pythonnow = datetime.datetime.now() print(now) # 输出当前日期和时间 formatted = now.strftime("%Y-%m-%d %H:%M:%S") print(formatted) # 格式化输出
1
2
3
4
5datetime.timedelta
- 表示时间间隔,可以进行日期和时间的加减运算。
- 主要方法:
days
: 获取天数。seconds
: 获取秒数。
pythondelta = datetime.timedelta(days=5) future_date = now + delta print(future_date) # 当前时间加5天
1
2
3datetime.tzinfo
- 用于处理时区的基类,通常不直接使用,更多的是通过
pytz
等库来处理时区。
- 用于处理时区的基类,通常不直接使用,更多的是通过
常用操作
日期和时间的格式化
- 使用
strftime()
方法可以将日期时间对象格式化为字符串。 - 使用
strptime()
方法可以将字符串解析为日期时间对象。
python
import datetime
d = datetime.datetime.now().strftime("%Y--%m-%d %H:%M:%S")
print(d, type(d)) # 2024--07-26 09:32:06 <class 'str'>
# 这里注意,__format 格式要和 字符串格式一样
f = datetime.datetime.strptime(d, "%Y--%m-%d %H:%M:%S")
print(f, type(f)) # 2024-07-26 09:32:43 <class 'datetime.datetime'>
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
日期和时间的比较
可以直接使用比较运算符对日期时间对象进行比较。
python
import datetime
d1 = datetime.datetime.now().date()
d2 = datetime.date(2011, 12, 1)
print(d1 > d2) # True
1
2
3
4
5
6
2
3
4
5
6
时区处理
使用 pytz
库来处理时区。
python
import pytz
utc_now = datetime.datetime.now(pytz.utc)
print(utc_now) # UTC 时间
1
2
3
4
2
3
4