作者:Lemon
来源:Python数据之道
前言
在用 Python 进行数据处理,尤其是时间序列数据的处理,经常会涉及处理时间或日期的地方,有些看似简单的问题,经常会混淆,甚至被困住。
本文分享的内容来自 Lemon 整理的《Python时间使用指南》,完整版的可以通过文末来获取。
首先要介绍的,是大家平时用的较多的 datetime 模块,它属于 Python 的内置模块,功能相对较全。
针对 Datetime
模块, 《Python时间使用指南》从构建时间对象实例、时间转换、时间对象的运算三个方面进行了梳理,共涉及 13 个知识点,整理的大纲如下:
构建时间对象实例
import datetime
# from datetime import date, datetime,time,timedelta,tzinfo
import time
时间实例的构造包括 日期(如 2020年10月12日),时间(如 20点10分01秒),或者是包含 date 和 time 的 datetime
(如 2020年10月12日20点10分01秒),下面 Lemon 来跟大家介绍下具体的构造过程。
日期(date)实例的构造
date 是一个理想化的简单型日期,属性有 year
, month
, day
。
# 构造日期 date 实例
d1 = datetime.date(2020,10,12)
d1
datetime.date(2020, 10, 12)
# 构造日期 date 实例
d1 = datetime.date(2020,10,12)
print(d1)
2020-10-12
除了上面的构造方式,在 date 实例化的时候,还可以通过 date.today()
来构造当天的日期。
datetime.date.today()
datetime.date(2020, 10, 14)
date
类型的日期,可以通过 .year
, .month
, .day
来获取日期所属的 年份,月份,和具体的日期号,这几个方法在数据分析中经常会用到。
# 获取日期所属的 年份,月份,和具体的日期号
print(f'日期所属的年份为:{d1.year}')
print(f'日期所属的月份为:{d1.month}')
print(f'日期具体的日期号为:{d1.day}')
日期所属的年份为:2020
日期所属的月份为:10
日期具体的日期号为:12
时间 time 实例的构造
time 是一个独立于任何特定日期的理想化时间,其属性有 hour
,minute
, second
, microsecond
和 tzinfo
。
# 构造时间 time 实例
t1 = datetime.time(20,10,1)
t1
datetime.time(20, 10, 1)
# 获取日期所属的 年份,月份,和具体的日期号
print(f'time 所属的小时为:{t1.hour}')
print(f'time 所属的分钟为:{t1.minute}')
print(f'time 所属的秒为:{t1.second}')
time 所属的小时为:20
time 所属的分钟为:10
time 所属的秒为:1
datetime 实例的构造
datetime 是日期和时间的结合,其属性有 year
,month
,day
,hour
,minute
, second
, microsecond
和 tzinfo
。
# 构造时间 datetime 实例
dt1 = datetime.datetime(2020,10,11,20,10,1)