【常用模块】:time模块浅谈

日期: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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Commas.KM

码路共同进步,感恩一路有您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值