日期:2020年3月3日
作者:Commas
注释:学习就是为了忘记,常用模块之旅开始啦;
如果您想了解更多有关Python的知识,那么请点《我的Python浅谈系列目录》
一、time模块初识
前面一些博客,我们经常用到time.sleep(1)
,即推迟1秒钟再执行线程,time模块不止这个作用,还有很多关于时间相关的功能。dir()
函数是一个非常好用的内置函数,不多说,直接来看看time模块的方法与变量吧……
import time
print(dir(time))
控制台输出结果(加粗部分是因为显示问题,实则为双下方法,即内置方法或属性):
[’_STRUCT_TM_ITEMS’, ‘doc’, ‘loader’, ‘name’, ‘package’, ‘spec’, ‘altzone’, ‘asctime’, ‘clock’, ‘ctime’, ‘daylight’, ‘get_clock_info’, ‘gmtime’, ‘localtime’, ‘mktime’, ‘monotonic’, ‘monotonic_ns’, ‘perf_counter’, ‘perf_counter_ns’, ‘process_time’, ‘process_time_ns’, ‘sleep’, ‘strftime’, ‘strptime’, ‘struct_time’, ‘thread_time’, ‘thread_time_ns’, ‘time’, ‘time_ns’, ‘timezone’, ‘tzname’]
二、时间的三种表示方式
import time
# (1)时间戳(time stamp)
# 返回自纪元(1970-01-01 00:00:00 )以来以秒(浮点秒数)为单位的当前时间
# 即 (当前时间 - 纪元) 后取秒为单位的浮点值
t = time.time()
print(t)
# (2)字符串格式时间(string format time)
# 格式化时间字符串,strftime是string format time的缩写
t = time.strftime("%Y-%m-%d %H:%M:%S")
print(t)
# (3)时间元组(time tuple)
# 时间表示方式转换的桥梁
# 返回值:(年,月,日,时,分,秒,一年中第几周,一年中第几天,是否是夏令时)
# (3-1) 当前时区的时间元组
t = time.localtime()
print(t)
# (3-2) 世界统一时(UTC)的时间元组
t = time.gmtime()
print(t)
# =======控制台输出结果=======
1583214633.4622803
2020-03-03 13:50:33
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=3, tm_hour=13, tm_min=50, tm_sec=33, tm_wday=1, tm_yday=63, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=3, tm_hour=5, tm_min=50, tm_sec=33, tm_wday=1, tm_yday=63, tm_isdst=0)
其中,time.strftime(format, p_tuple=None)
中的format的常见格式如下:
%Y Year with century as a decimal number.
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,61].
%z Time zone offset from UTC.
%a Locale's abbreviated weekday name.
%A Locale's full weekday name.
%b Locale's abbreviated month name.
%B Locale's full month name.
%c Locale's appropriate date and time representation.
%I Hour (12-hour clock) as a decimal number [01,12].
%p Locale's equivalent of either AM or PM.
三、时间表示方式的转换
时间戳(time stamp)
不可以直接与字符串格式化时间(string format time)
互相转换,必须借助时间元组(time tuple)
这个桥梁进行转换,其他二者均可以互相转换,如上图所示。
(1)时间戳与时间元组的互相转换
# (1-1)时间戳→时间元组
time_stamp_t = 1583214633.4622803
t = time.localtime(time_stamp_t)
print(t)
t = time.gmtime(time_stamp_t)
print(t)
# (1-2)时间元组→时间戳
time_tuple_t = time.localtime()
t = time.mktime(time_tuple_t)
print(t)
# =======控制台输出结果=======
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=3, tm_hour=13, tm_min=50, tm_sec=33, tm_wday=1, tm_yday=63, tm_isdst=0)
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=3, tm_hour=5, tm_min=50, tm_sec=33, tm_wday=1, tm_yday=63, tm_isdst=0)
1583214633.4622803
(2)字符串格式时间与时间元组的互相转换
# (2-1)字符串格式时间→时间元组的互相转换
format_string_t = "2020-03-03 13:50:33"
t = time.strptime(format_string_t, "%Y-%m-%d %H:%M:%S")
print(t)
# (2-2)时间元组的互相转换→字符串格式时间
time_tuple_t = time.localtime()
t = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple_t)
print(t)
# =======控制台输出结果=======
time.struct_time(tm_year=2020, tm_mon=3, tm_mday=3, tm_hour=13, tm_min=50, tm_sec=33, tm_wday=1, tm_yday=63, tm_isdst=-1)
2020-03-03 13:50:33
(3)时间戳、时间元组可以转换特定的字符串格式时间
# (3-1)时间戳→字符串格式时间(特定)
time_stamp_t = 1583214633.4622803
t = time.ctime(time_stamp_t)
print(t)
# (3-2)时间元组→字符串格式时间(特定)
time_tuple_t = time.localtime()
t = time.asctime(time_tuple_t)
print(t)
# =======控制台输出结果=======
Tue Mar 3 13:50:33 2020
Tue Mar 3 13:50:33 2020
版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/104630156