关于Python日期格式转换


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!!!)   %% %号本身