python日期格式的处理
from datetime import datetime
from datetime import timedelta
from dateutil.parser import parse
#获取当前的时间
now = datetime.now()
now
打印结果:
datetime.datetime(2018, 6, 22, 9, 15, 15, 67350)
# 获取年月日
now.year,now.month,now.day
打印结果:
(2018, 6, 22)
#时间日期类型的加减运算
deltatime = datetime(2011,1,7)-datetime(2008,6,24,8,15)
deltatime
打印结果:
datetime.timedelta(926, 56700)
# 获取日期
deltatime.days,deltatime.seconds
打印结果:
(926, 56700)
start = datetime(2017,1,7)
# timedelta指定时间差
start + timedelta(12)
打印结果:
datetime.datetime(2017, 1, 19, 0, 0)
#一年之后的今天
today = datetime(2018,6,22)
today + timedelta(365)
打印结果:
datetime.datetime(2019, 6, 22, 0, 0)
2*timedelta(12)
打印结果:
datetime.timedelta(24)
#时间日期类型和字符串之间的转换
stamp = datetime.now()
stamp
打印结果:
datetime.datetime(2018, 6, 22, 9, 31, 18, 358952)
# 最直接的转换方法
str(stamp)
打印结果:
'2018-06-22 09:31:18.358952'
# 将时间日期类型转换成指定的格式
stamp.strftime("%Y-%m-%d %H:%M:%S")
打印结果:
'2018-06-22 09:31:18'
# 将字符串转换成时间日期类型
dateStr = "2018-6-22"
mydate = datetime.strptime(dateStr,"%Y-%m-%d")
mydate
打印结果:
datetime.datetime(2018, 6, 22, 0, 0)
#获取指定结果
mydate.day
打印结果:
22
datestr = ["7/6/2011","8/6/2011"]
#通过列表推导式创建时间日期类型列表
result = [datetime.strptime(x,"%m/%d/%Y") for x in datestr]
result
打印结果:
[datetime.datetime(2011, 7, 6, 0, 0), datetime.datetime(2011, 8, 6, 0, 0)]
# 使用parse模块将字符串模式直接转换成时间
parse('2018-06-20') #或parse('Jan 30 2011 10:45 PM')
打印结果:
datetime.datetime(2018, 1, 30, 22, 45)
# 通过dayfirst参数指定第一数值式日期还是月份 True:首位是日 ;False:首位是月
parse('7/6/2018',dayfirst=False)
打印结果:
datetime.datetime(2018, 7, 6, 0, 0)