python日期格式转换,上代码。
import time import datetime time_str = 'Jun 18, 2016' time_format=datetime.datetime.strptime(time_str,'%b %d, %Y') print(time_format)
当然这个很简单,如果time_str是其他形式的,还可以按照time_format当中的‘%’进行替换时间日期格式化符号。
在转换格式的时候有一个小坑,time_str中,年月日是常见的,每个单位用逗号隔开,但是月和日要使用空格隔开。类似于代码中的格式一样。
这里再穿插一段内容,上图的代码得到的日期是一个时间对象,并不是一个字符串类型的,正好今天遇到了需要计算时间进行校验的问题,所以补充下。
如果需要得到时间类型的字符串而不是一长串时间对象,直接上代码看吧。还是借用上面的例子:
import time import datetime time_str = 'Jun 18, 2016' time_format=datetime.datetime.strptime(time_str,'%b %d, %Y') t_str = time_format.strftime("%Y-%m-%d") print(time_format)# 输出时间对象 print(t_str)# 输出时间字符串
使用strftime()再转一下就可以得到一个时间字符串。
但是如果我门直接得到的是'20200804'这样的怎么办?
from dateutil.parser import parse date = parse('20160910').strftime('%Y-%m-%d-%H-%M')[0:-6] print(date)
输出:
2016-09-10
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(0000-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 当前时区的名称(+0800这样的时区转换用小写的z!!!)
%% %号本身