最近在搞一个项目,遇到时间处理相关的需求。真的是实战需求导致学习需求,于是百度谷歌了一番,常用的时间处理方法和函数整理出本文。用百分之20时间,学会解决时间问题百分之80的问题。
常用的库有time、datetime。其中datetime库是对time库的封装,所以使用起来更加便捷。date是指日期时间(年月日)处理,time往往更加细小的单位(小时分秒等)的时间处理。
一、datetime库
1.1 datetime.date类
表示日期的类,常用的属性有year、month、day。参数都为整数。
日期的标准化格式符号
以规定的格式返回。
生成如‘2018-01-01’
今天
根据给定的时间戮,返回一个date对象
1.2 datetime.time类
表示时间的类,参数包括hour、minute、second、microsecond。 time类的方法同datetime类。
看看isoformat、strftime方法会返回什么
时间的格式化处理
1.3 datetime.datetime类
日期实践类,常用的参数包含year、month、day、hour、minute、second、microsecond。但是至少要包含year、month、day三个参数。
只含有年月日
看看isoformat、strftime方法会返回什么
1.4 datetime.timedelta类
表示时间间隔类,给一个时间点加上此类,即可得到一个新的时间。
参数包含days、hours、minutes、seconds、microseconds。
35天间隔
现在+/-时间间隔操作
二、time库
常用的方法有time、localtime
三、pandas库时间处理函数
获取当前时间,并返回出年月日规范格式。形如 2017-01-04
常用的方法有:
3.1 根据始末时间生成时间段
pd.date_range(start, end, freq)生成一个时间段
freq参数由英文(M D H Min 。。。)、英文数字结合。D表示一天,M表示一月如20D表示20天,5M表示5个月。
3.2 根据起始向后生成时间段
pd.date_range(日期字符串, periods=5, freq='T')生成一个时间段
periods :时间段长度,整数类型
freq:时间单位。月日时分秒。M D H ...
我们发现date_range()生成的是index,那么我们就可以索引为日期类型的dateframe
3.3 根据给定时间点向前(向后)生成时间段
pd.bdate_range(end,periods,freq) 根据end时间点开始,以freq为单位,向前生成周期为period的时间序列
pd.bdate_range(start,periods,freq) 根据start时间点开始,以freq为单位,向后生成周期为period的时间序列
改变时间间隔
3.4 可以统一日期格式
3.5 提取指定日期的数据
如下tm_rng是以5小时时间间隔,生成了20个数据。我们只要2018-01-02的数据。对Series或Dataframe都可以使用日期字符串操作,选取指定时间范围的数据。
数据采集文本处理分析图片数据处理其他
领取专属 10元无门槛券
私享最新 技术干货