python标准库包含于日期(date)和时间(time)数据的数据类型,datetime、time以及calendar模块会被经常用到。
datetime以毫秒形式存储日期和时间,datetime.timedelta表示两个datetime对象之间的时间差。给datetime对象加上或减去一个或多个timedelta,会产生一个新的对象
一: python 中datetime模块使用
from datetime import datetime
from datetime import timedelta
now = datetime.now()
print(now)
#输出结果如下:datetime.datetime(2019, 9, 7, 15, 52, 52, 249151)
delta = now - datetime(2017,6,27,10,10,10,10)
print(delta)#结果为:72 days, 5:49:07.559481
print(delta.days)#结果为:72
print(delta.seconds)#结果为:20947
print(delta.microseconds)#结果为:559481
其中datetime参数如下:datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
二:pandas 中to_datetime 使用
将日期格式字符串转化为日期格式,可以指定按什么格式进行转化
python中时间日期格式化符号:
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
date=['2017-6-26','2017-6-27']
import pandas as pd
print(pd.to_datetime(date))
# 输出结果为:DatetimeIndex(['2017-06-26','2017-06-27'], dtype='datetime64[ns]', freq=None)
三:工作中常见时间操作
#1.获取当前日期
import datetimeprint(datetime.date.today())#输出结果为:2019-09-07
#2.把日期转成字符串
import datetimetoday_date=str(datetime.date.today())print(today_date)#输出结果为:'2019-09-07'
#3.把字符串转成日期
from datetime import datetimetext ='2019-09-07'y = datetime.strptime(text,'%Y-%m-%d')print(y)#输出结果为:2019-09-07
#4.当前日期的前后n日期
import datetime
from datetime import timedelta
print(datetime.date.today()+timedelta(days=-1))#输出结果为:2019-09-06,表示当天日期前一天
#5.获得某一日期的月初和月末
from datetime import datetime
text='2019-09-07'
month_first=datetime.strptime(text[:8]+'01','%Y-%m-%d')
print(month_first)#输出结果为:2019-09-01 00:00:00
month_end=datetime.strptime(text[:5]+str(int(text[5:7])+1)+'-01','%Y-%m-%d')+timedelta(days=-1)
print(month_end)#输出结果为:2019-09-3000:00:00
#6. 转换UNIX时间戳为普通时间
from datetime import datetimetime
Stamp =1381419600
dateArray = datetime.utcfromtimestamp(timeStamp)
otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S")
print(otherStyleTime) #输出结果为:2013-10-1015:40:00