1、前言
在用
Python
进行数据处理,尤其是时间序列梳理的处理,经常会涉及处理时间或日期的地方,有些看似简单的问题,经常会混淆,甚至被困住。
虽然网上已有不少关于
Python
时间模块介绍的内容,但总体来说较为零散,因此阳哥对
Python
内置的时间模
块来进行了整理,
Python
内置时间处理模块主要包括:
• Datetime
• Time
• Calendar
概括来说,时间和日期处理的模块和库,有几个主要的概念都是会涉及的,包括:
日期
,
时间
,
时间戳
,
时间和字符串的转换
,
时区
等。
Datetime
、
Time
、
Calendar
这三个模块中,我们用的较多的是
Datetime
,在这里我们介绍的也较为详细。
针对
Datetime
模块,从构建时间对象实例、时间转换、时间对象的运算三个方面进行了梳理,共涉及
13
个知识点,整理的大纲如下:
针对 Time 模块,从时间获取和时间转换两个方面进行了梳理,共涉及 6 个知识点,整理的大纲如下:
在此要介绍的,是大家平时用的较多的 datetime 模块, 它属于 Python 的内置模块,功能相对较全。
2、构建时间对象实例
2.1 日期(date)实例的构造
date
是一个理想化的简单型日期,属性有
year
,
month
,
day
。
import datetime
import time
# 构 造 日 期 date 实 例
d1 = datetime.date(2020,10,12)
print(d1)
# 获取日期所属的年份 ,月份,和具体的日期号
print(f' 日 期 所 属 的 年 份 为 : {d1.year}')
print(f' 日 期 所 属 的 月 份 为 : {d1.month}')
print(f' 日 期 具 体 的 日 期 号 为 : {d1.day}')
运行结果:
2.2 时间 time 实例的构造
time
是一个独立于任何特定日期的理想化时间,其属性有
hour
,
minute
,
second
,
microsecond
和
tzinfo
。
#构造time时间实例
t1 = datetime.time(20,10,1)
print(t1)
print(f'time 所 属 的 小 时 为 : {t1.hour}')
print(f'time 所 属 的 分 钟 为 : {t1.minute}')
print(f'time 所 属 的 秒 为 : {t1.second}')
运行结果:
2.3 datetime 实例的构造
datetime
是日期和时间的结合,其属性有
year
,
month
,
day
,
hour
,
minute
,
second
,
microsecond
和
tzinfo
。
# 构造时间datetime实例
dt1 = datetime.datetime(2020,10,11,20,10,1)
print(dt1)
dt2 = datetime.datetime.now()
print(dt2)
dt3 = datetime.datetime.today()
print(dt3)
dt4 = datetime.datetime.combine(d1,t1)
print(dt4)
dt5 = dt4.replace(year=2019)
print(dt5)
运行结果:
2.4 timedelta 对象的构造
timedelta
对象表示两个
date
或者
time
或者
datetime
的时间间隔。
class
datetime
.
timedelta
(
days
=0,
seconds
=0,
microseconds
=0,
milliseconds
=0,
minutes
=0,
hours
=0,
weeks
=0)
所有参数都是可选的并且默认为
0
。这些参数可以是整数或者浮点数,也可以是正数或者负数。
只有
days, seconds
和
microseconds
会存储在内部。参数单位的换算规则如下:
• 1
毫秒会转换成
1000
微秒。
• 1
分钟会转换成
60
秒。
• 1
小时会转换成
3600
秒。
• 1
星期会转换成
7
天。
delta = datetime.timedelta(weeks=3,
days=10,
hours=6,
minutes=50,
seconds=30,
microseconds=1000,
milliseconds=10000,
)
print(delta)
运行结果: