日期格式化符号:
- %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 :当前时区的名称
- %% :%号本身
将日期从一种格式转化为另一种格式:
import time
def trans_format(time_string, from_format, to_format='%Y.%m.%d %H:%M:%S'):
time_struct = time.strptime(time_string, from_format)
times = time.strftime(to_format, time_struct)
return times
#将11 May转为mm-dd形式
time_string = "11 May"
times = trans_format(time_string, '%d %b', '%m-%d') #由于没有输入年份,所以输出的默认年份是1900
将1:00pm这种格式转为24小时制
import time
import datetime
##此方法适用于将12小时制AM/PM转化为24小时制
##12.30pm -> 12:30
##12.30am -> 00:30
##1.30pm - >13.30
def time12to24(time_string, formats):
times = time.strftime("%H.%M", time.strptime(time_string, formats)) #将时间转为hh.mm类型
ftime = datetime.datetime.strptime(times, "%H.%M") #将times字符串转为%H.%M的datetime类型
if time_string.find("am") > -1:
if times >= '12.00':
ftime = ftime + datetime.timedelta(hours=36) # +36小时而不是-12小时的原因:如果未提供年份,则默认为1900,如果-12小时,年份有可能为1899,会异常
elif time_string.find("pm") > -1:
if times < '12.00':
ftime = ftime + datetime.timedelta(hours=12)
times = ftime.strftime("%H:%M")
import datetime
t = '01-Jan-1995'
time_format = datetime.datetime.strptime(t,'%d-%b-%Y')
print(time_format)
1995-01-01 00:00:00