处理数据时经常会遇到处理时间的问题,拿原始数据中保存的str格式的日期筛选,结果不对
python中有三种时间格式:
1、时间戳(int,float类型),import time
2、元组(struct_time类型)内涵九个元素
3、datetime类型(如:2017-11-28 14:49:43.097000)
4、格式化的时间字符串 (String类型)
最常用的形式是datetime类型
from datetime import datetime
now = datetime.now()
datetime.timedelta表示时间差:
delta = datetime(2011,11,7) - datetime(2008, 6, 24, 8, 15)
delta.days --> 926
最简单的获取时间戳的方式是导入 time模块 之后直接通过 time.time()方法可以获得当前时间,获得的时间戳类型是float类型。
from datetime import datetime
datetime.now()方法获取datetime格式的当前时间(当前时区 操作系统设置的时区)
相互转换
jsontime = '2017-04-03'
#string->time
time.strptime(jsontime,"%Y-%m-%d")
#string->datetime 常用
datetime.datetime.strptime(jsontime,"%Y-%m-%d")
#time->string
time.strftime("%y-%m-%d",time.localtime())
#pandas中转换为日期格式
df['time'] = pd.to_datetime(df['time'].tolist())
# 常用按天做差
time = (end_day - datetime.timedelta(days=i)).strftime('%Y-%m-%d')