日期时间变量是我们经常用到的,特别是在做数据分析时。本文是pandas中调用的正确方法。供大家参考。
pandas 官网 https://pandas.pydata.org/
官网教程 https://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html
1.日期获取
1.1获取当前日期,年月日时分秒
1.2提起日期中的信息
2.日期转换
2.1日期转换成UNIX时间戳
2.2 UNIX时间戳转换为可读日期
3.日期计算
3.1日期间隔
3.2 日期差
1.日期获取
1.1获取当前日期,年月日时分秒
1.2提起日期中的信息
#1.1获取当前时间 pd.datetime.now()
# dt_now = pd.datetime.now()
# print('dt_now={},type(dt_now)={}'.format(dt_now, type(dt_now))) # dt_now=2019-12-10 14:39:18.513064
# 1.2. 获取年月日时分秒 datetime类型
# dt_now = pd.datetime.now()
# m_year = dt_now.year
# m_month = dt_now.month
# m_day = dt_now.day
# m_minute = dt_now.minute
# m_second = dt_now.second
# print('year={},month={},day={},min={},sec={}'.format(m_year, m_month, m_day, m_minute, m_second))
2.日期转换
2.1日期转换成UNIX时间戳
#2.1 格式转换 datetime->str->unix时间戳 datetime time
# 2.1.1 datetime->str strftime
cur_dt=pd.datetime.now()
str_dt = cur_dt.strftime('%Y-%m-%d %H:%M:%S')
print('cur_dt={},str_dt={}'.format(cur_dt, str_dt)) #cur_dt datetime str_dt str
# 2.1.2 str->datetime strptime
cur_dt=cur_dt.strptime(str_dt, '%Y-%m-%d %H:%M:%S')
print('cur_dt={}type(cur_dt)={}'.format(cur_dt ,type(cur_dt))) # cur_dt datetime
# 2.1.3 datetime->unix时间戳 # time.mktime(cur_now.timetuple())
cur_now = pd.datetime.now()
int_time = int(time.mktime(cur_now.timetuple()))
print('cur_now类型={} int_time={}'.format(type(cur_now), int_time))
2.2 UNIX时间戳转换为可读日期
#2.2. unix时间戳->datetime
ini_dt=pd.datetime(2019, 12, 10, 8) #datetime 赋值
print('datetime 赋值 int_dt={},type(int_dt)={}'.format(ini_dt, type(ini_dt)))
int_time = int(time.mktime(ini_dt.timetuple())) # datetime->时间戳
print('datetime->时间戳 int_time={},type(int_time)={}'.format(int_time, type(int_time)))
cur_dt = pd.datetime.fromtimestamp(int_time) # 时间戳->datetime
print('时间戳->datetime cur_dt={},type(cur_dt)={}'.format(cur_dt, type(cur_dt)))
int_time = time.localtime()
3.日期计算
3.1日期间隔
3.2 日期差
# 3. 间隔计算 datetime timedelta(days, seconds, microseconds, milliseconds, minutes, hours, weeks)
ini_dt = pd.datetime(2019, 12, 10, 8)
td1 = timedelta(days=1) #1天
tm15= timedelta(minutes=15) #15分钟间隔
th1 = timedelta(hours=1) # 1小时间隔
print('初始化datetime日期 {}和 间隔1天{}, 15分钟{}, 1小时{}'.format(ini_dt,td1,tm15,th1))
cur_dt=ini_dt+td1
print('+1天={}'.format(cur_dt)) # 2019-12-11 08:00:00
cur_dt = ini_dt + tm15
print('+15分钟={}'.format(cur_dt)) #2019-12-10 08:15:00
cur_dt=ini_dt+th1
print('+1小时={}'.format(cur_dt)) # 2019-12-10 09:00:00