03.利用Python进行数据分析之Python日期时间
03.利用Python进行数据分析之Python日期时间
Python内建的datetime模块提供了datetime、date和time类型。datetime类型结合了date和time。
from datetime import datetime, date, time
dt = datetime(2025, 3, 20, 15, 20, 30)
dt.year
2025
dt.hour
15
dt.minute
20
dt.second
30
# 根据datetime实例,你可以用date和time提取出各自的对象
dt.date()
datetime.date(2025, 3, 20)
dt.time()
datetime.time(15, 20, 30)
# strftime方法可以将datetime格式化为字符串
dt.strftime('%Y-%m-%d %H:%M:%S')
'2025-03-20 15:20:30'
# strptime可以将字符串转换成datetime对象
datetime.strptime('2025-10-18 00:13:14', '%Y-%m-%d %H:%M:%S')
datetime.datetime(2025, 10, 18, 0, 13, 14)
datetime格式化指令如下:
- %Y:表示四位数字的年。
- %y:表示两位数字的年。
- %m:表示两位数字的月,取值范围是 [01,12] 。
- %d:表示两位数字的天,取值范围是 [01,31] 。
- %H:表示小时(24 小时制),取值范围是 [00,23] 。
- %I:表示小时(12 小时制),取值范围是 [01,12] 。
- %M:表示两位数字的分,取值范围是 [00,59] 。
- %S:表示秒,取值范围是 [00,61](60、61 表示闰秒) 。
- %w:表示整数的周几,0 代表周日,取值范围是 [0,6] 。
- %U:表示第几周,周日当作一周的开始,第一个周日前的天数作为 “week 0”,取值范围是 [00,53] 。
- %W:表示第几周,周一当作一周的开始,第一个周一前的天数作为 “week 0”,取值范围是 [00,53] 。
- %z:表示 UTC 时区偏移量,格式为 + HHMM 或 -HHMM;不知道时区则为空 。
- %F:表示%Y-%m-%d的格式,例如 2012-4-18 。
- %D:表示%m/%d/%y的格式,例如 04/18/12 。
# datetime.datetime是不可变类型,下面的操作会产生新的数据
dt.replace(minute=0, second=0)
datetime.datetime(2025, 3, 20, 15, 0)
# 两个datetime对象的差会产生一个datetime.timedelta类型
dt2 = datetime.strptime('2025-05-01 13:14:00', '%Y-%m-%d %H:%M:%S')
delta = dt2 - dt
delta
datetime.timedelta(days=41, seconds=78810)
type(delta)
datetime.timedelta
# 将timedelta加到datetime,会产生一个新的偏移datetime
n = datetime.now()
from datetime import timedelta
d = timedelta(seconds = 24*3600)
n + d
datetime.datetime(2025, 3, 21, 15, 38, 40, 425841)