版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DataCastle/article/details/84250385
平常的工作与学习中,会遇到许许多多与时间相关的问题,例如时间戳,时间格式化等等。所以今天就带大家了解一下python中处理时间的模块,time,更多的是希望大家不在坑里反复循环的进去出来,相信大家都比我聪明 -_ -...
首先,获取当前时间(以下代码默认导入time模块,不再重复)
import time time.time() #获取当前时间戳:1542610928.524562 time.localtime(time.time()) #获取当前时间:将时间戳转换为时间元组 #time.struct_time(tm_year=2018, tm_mon=11, tm_mday=19, tm_hour=15, tm_min=2, tm_sec=8, tm_wday=0, tm_yday=323, tm_isdst=0)
struct_time(时间元组)中各部分的含义如下表格所示:
属性 值 tm_year 2018 tm_mon 11(1 到 12) tm_mday 19(1 到 31) tm_hour
15(0 到 23)
tm_min 2(0 到 59) tm_sec 8(0 到 61 ,60或61 是闰秒) tm_wday 0(0到6,0是周一) tm_yday 323(1 到 366(儒略历)) tm_isdst 0(-1, 0, 1, -1是决定是否为夏令时的旗帜) 获取格式化时间:
- (asctime方法:直接获取可读的时间格式)
time.asctime( time.localtime(time.time())) #'Mon Nov 19 15:21:20 2018'
- (strftime方法:获取自定义格式的时间,获取对象为时间元组)
time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) #'Mon Nov 19 15:39:28 2018' #与asctime()方法获取的结果格式一致 time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) #'2018-11-19 15:36:50'
时间日期格式化符号如下表所示:
%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 当前时区的名称
%% %号本身
将格式字符串转换为时间戳:(上面通过time.localtime将时间戳转换为时间元组,这里是逆过程)
- (time.mktime(time.strptime()))
其中strptime()根据字符串对应的时间格式把一个时间字符串解析为时间元组。
a ='Mon Nov 19 15:21:20 2018' time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")) #时间戳为:1542612080.0
Time模块的其他重要函数:
- time.sleep(),time.timezone
time.sleep(secs) #推迟调用程序的运行,secs指秒数。 time.timezone #显示当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲)。
内容不多,目的是想让大家明确如何将时间与时间戳来回转换,并且中间需要时间元组进行过渡,明白了这一点就ok了。