python时间格式化操作
时间表示形式
1、获得当前时间的时间戳(自1970至今的秒数),类型浮点型
>>> import time
>>> time.time()
1510638986.3258848
>>> type(time.time())
<class 'float'>
2、获得当前时间的本地(UTC + x)时间,类型time.struct_time
>>> time.localtime()
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=14, tm_hour=13, tm_min=59, tm_sec=7, tm_wday=1, tm_yday=318, tm_isdst=0)
# tm_wday星期[0,6];0表示星期天
# tm_isdst夏令时,0表示未开启夏令时
>>> type(time.localtime())
<class 'time.struct_time'>
时间表现形式之间相互转换
1、自定义格式去输出时间的字符串;time.strftime(format, t)
# t可以是元组,也可以是time.struct_time
>>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
'2017-11-14 14:12:33'
>>> time.strftime('%Y-%m-%d %H:%M:%S',(2017,11,14,13,59,7,1,318,0))
'2017-11-14 13:59:07'
2、将特定格式的时间字符串转换为时间;time.strptime(t_str, format)
# t_str的格式要和format一一对应,否则转换报错
>>> time.strptime('2017-11-14 13:59:07', '%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=14, tm_hour=13, tm_min=59, tm_sec=7, tm_wday=1, tm_yday=318, tm_isdst=-1)
3、time.struct_time转换为时间戳秒;time.mktime(t)
# t可以是元组,也可以是time.struct_time
>>> time.mktime(time.localtime())
1510640755.0
>>> time.mktime((2017,11,14,13,59,7,1,318,0))
1510639147.0
4、时间戳秒转换为time.struct_time;time.localtime(t)
>>> time.localtime(1510639147.0)
time.struct_time(tm_year=2017, tm_mon=11, tm_mday=14, tm_hour=13, tm_min=59, tm_sec=7, tm_wday=1, tm_yday=318, tm_isdst=0)
format参照表
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 当前时区的名称
%% %号本身