Python time库的时间时钟处理


Posted in Python onMay 02, 2021

前言

time库运行访问多种类型的时钟,这些时钟用于不同的场景。本篇,将详细讲解time库的应用知识。

获取各种时钟

既然time库提供了多种类型的时钟。下面我们直接来获取这些时钟,对比其具体的用途。具体代码如下:

import time

print(time.monotonic())
print(time.monotonic_ns())
print(time.perf_counter())
print(time.perf_counter_ns())
print(time.process_time())
print(time.process_time_ns())
print(time.time())
print(time.time_ns())

上面的代码具体的意义如下:

  • monotonic:用于测量一个长时间运行的进程的耗用时间,因为即使系统时间有改变,也能保证这个时钟不会逆转。
  • perf_counter:允许访问有最高可用分辨率的时钟,这使得短时间测量更为准确。
  • process_time:返回处理器时间和系统时间的组合结果。
  • time:返回从”纪元“开始以来的秒数。UNIX系统从1970年1月1日00:00开始计算。

运行之后,效果如下:

Python time库的时间时钟处理

至于ns后缀,是返回纳秒时间。

获取当前时间

time.time()函数是获取”纪元“时间,是不是可以通过秒分时的换算计算出现在的日期时间呢?

当然可以,不过这太麻烦了,time库还给我们提供了更简单的函数time.ctime()获取当前的日期与时间。具体代码如下所示:

import time
print(time.ctime())

运行之后,效果如下:

Python time库的时间时钟处理

这里返回了星期六:Sat,月份4月10号:Apr 10,年份:2021以及当前的时间。

时间加减法

如果你掌握了time.ctime()函数的参数用法,那么计算时间的加减法也可以轻而易举的实现。不过有一点需要注意,就是需要将加减的参数需全部换成秒。比如1天后,那么就是加86400。具体代码如下:

import time
#获取当前时间
print(time.ctime())
#获取当前时间
later=time.time()+86400
#计算一天后的时间
print(time.ctime(later))
#计算20秒后的时间
print(time.ctime(time.time()+20))

运行之后,效果如下:

Python time库的时间时钟处理

strptime()函数

上面的代码虽然可以获取以及计算时间,但是获取的时间非常的笼统。比如说,日历应用程序,我只需要计算今天是星期几,并不需要知道其他数据怎么办?

显然,我们需要分离关键的时间数据。而time库提供了函数strptime()用于返回时间结构体数据struct_time对象。具体代码如下:

import time

now = time.ctime()
struct_time = time.strptime(now)
print("当前年份:", struct_time.tm_year)
print("当前月份:", struct_time.tm_mon)
print("当前日(年月日中的日):", struct_time.tm_mday)
print("当前小时数:", struct_time.tm_hour)
print("当前分钟数:", struct_time.tm_min)
print("当前星期:", struct_time.tm_wday+1)
print("今年过了{0}天(包括今天)".format(struct_time.tm_yday))

运行之后效果如下:

Python time库的时间时钟处理

需要注意的是,程序中的星期一是0,tm_wday等于5,那么就需要加一,也就是等于星期六。

strftime()函数

通过strptime()函数,我们虽然能够获取到单一的日期相关的数据。但是我如果只想要当前的时间,怎么办?当然,你可以通过上面的分解,将时,分,秒分别转换为字符串然后拼接。不过这样太麻烦了,我们有个更简单的方法。

这里,我们就需要用到time.strftime()函数。用法如下:

import time

s = time.strftime("%H:%M:%S", time.localtime())
print(s)

运行之后,效果如下:

Python time库的时间时钟处理

需要注意的是,strftime()函数的第2个参数接受一个struct_time对象。而time.localtime()的作用就是格式化时间戳为本地的时间,它有一个sec参数,也就是对应的time.time()函数的秒数,将秒数转换为标准的时间。如果没有参数,返回当前时间。

至于第1个参数,用特定的标识符,表示需要筛选的数据。具体用法如下表:

 

符号 含义
%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 当前时区的名称
%% %号本身

 mktime()函数

假如现在我们有一个需求,就是自己输入时间的年月日时分秒,然后计算500秒后的时间点。怎么实现呢?

首先,我们需要实现time库的加法运算,就需要将我们输入的日期数据转换为time库可识别的日期数据,而time.mktime()函数能够将数字转换为time库的日期数据,然后再进行加减法运算。

具体操作如下:

import time

t = (2021, 2, 17, 17, 3, 38, 1, 48, 0)
second_time = time.mktime(t)
struct_time = time.localtime(second_time)
print(time.strftime("%Y-%m-%d %H:%M:%S", struct_time))

second_time2 = second_time + 500
struct_time = time.localtime(second_time2)
print(time.strftime("%Y-%m-%d %H:%M:%S", struct_time))

运行之后,效果如下:

Python time库的时间时钟处理

需要注意的是,time.mktime()函数接受9位的元组数据,少一位都会报错。元组数据的意义分别为年,月,日,时,分,秒,星期几,今年第几天,是否为夏令时。当倒数2,3位数与前面日期冲突时,time.mktime()函数会自动修正。

gmtime()函数

这个函数不做过多的讲解,简单的理解就是返回UTC时区的struct_time对象。也就是国际协调时间。

具体用法如下:

import time

utc_now = time.gmtime()
print(utc_now)
print(time.strftime("%Y-%m-%d %H:%M:%S", utc_now))

运行之后,效果如下:

Python time库的时间时钟处理

到此这篇关于Python time库的时间时钟处理的文章就介绍到这了,更多相关Python time库时间时钟内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python高级应用实例对比:高效计算大文件中的最长行的长度
Jun 08 Python
python写入中英文字符串到文件的方法
May 06 Python
Python入门教程之if语句的用法
May 14 Python
python实现图片变亮或者变暗的方法
Jun 01 Python
Python爬取附近餐馆信息代码示例
Dec 09 Python
Python模块WSGI使用详解
Feb 02 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
python多线程扫描端口(线程池)
Sep 04 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
May 22 Python
Python如何输出警告信息
Jul 30 Python
Django项目如何获得SSL证书与配置HTTPS
Python基础之常用库常用方法整理
Apr 30 #Python
Django 实现jwt认证的示例
Python基础之赋值,浅拷贝,深拷贝的区别
Apr 30 #Python
python绘图subplots函数使用模板的示例代码
教你怎么用Python处理excel实现自动化办公
解决python绘图使用subplots出现标题重叠的问题
You might like
用PHP实现多服务器共享SESSION数据的方法
2007/03/16 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
详解php中的implements 使用
2017/06/13 PHP
jquery随机展示头像代码
2011/12/21 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
2016/01/28 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
es6中比较有用的7个技巧小结
2019/07/12 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
python中pycurl库的用法实例
2014/09/30 Python
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
九步学会Python装饰器
2015/05/09 Python
Python实现的爬虫功能代码
2017/06/24 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
Python中的引用知识点总结
2019/05/20 Python
kali中python版本的切换方法
2019/07/11 Python
解决pip install psycopg2出错问题
2020/07/09 Python
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
房地产广告词大全
2014/03/19 职场文书
静心口服夜广告词
2014/03/20 职场文书
森林防火宣传标语
2014/06/27 职场文书
Mysql 如何查询时间段交集
2021/06/08 MySQL
MongoDB数据库的安装步骤
2021/06/18 MongoDB
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏