time库:Python的时间时钟处理
目录
- 前言
- 获取各种时钟
- 获取当前时间
- 时间加减法
- strptime()函数
- strftime()函数
- mktime()函数
- gmtime()函数
前言
time库运行访问多种类型的时钟,这些时钟用于不同的场景。本篇,将详细讲解time库的应用知识。
获取各种时钟
既然time库提供了多种类型的时钟。下面我们直接来获取这些时钟,对比其具体的用途。具体代码如下:
import timeprint(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开始计算。
运行之后,效果如下:
至于ns后缀,是返回纳秒时间。
获取当前时间
time.time()函数是获取”纪元“时间,是不是可以通过秒分时的换算计算出现在的日期时间呢?
当然可以,不过这太麻烦了,time库还给我们提供了更简单的函数time.ctime()获取当前的日期与时间。具体代码如下所示:
import time
print(time.ctime())
运行之后,效果如下:
这里返回了星期六: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))
运行之后,效果如下:
strptime()函数
上面的代码虽然可以获取以及计算时间,但是获取的时间非常的笼统。比如说,日历应用程序,我只需要计算今天是星期几,并不需要知道其他数据怎么办?
显然,我们需要分离关键的时间数据。而time库提供了函数strptime()用于返回时间结构体数据struct_time对象。具体代码如下:
import timenow = 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))
运行之后效果如下:
需要注意的是,程序中的星期一是0,tm_wday等于5,那么就需要加一,也就是等于星期六。
strftime()函数
通过strptime()函数,我们虽然能够获取到单一的日期相关的数据。但是我如果只想要当前的时间,怎么办?当然,你可以通过上面的分解,将时,分,秒分别转换为字符串然后拼接。不过这样太麻烦了,我们有个更简单的方法。
这里,我们就需要用到time.strftime()函数。用法如下:
import times = time.strftime("%H:%M:%S", time.localtime())
print(s)
运行之后,效果如下:
需要注意的是,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 timet = (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))
运行之后,效果如下:
需要注意的是,time.mktime()函数接受9位的元组数据,少一位都会报错。元组数据的意义分别为年,月,日,时,分,秒,星期几,今年第几天,是否为夏令时。当倒数2,3位数与前面日期冲突时,time.mktime()函数会自动修正。
gmtime()函数
这个函数不做过多的讲解,简单的理解就是返回UTC时区的struct_time对象。也就是国际协调时间。
具体用法如下:
import timeutc_now = time.gmtime()
print(utc_now)
print(time.strftime("%Y-%m-%d %H:%M:%S", utc_now))
运行之后,效果如下:
time库:Python的时间时钟处理相关推荐
- python time库3.8_time --- 时间的访问和转换 — Python 3.8.1 文档
time --- 时间的访问和转换¶ 该模块提供了各种时间相关的函数.相关功能还可以参阅 datetime 和 calendar 模块. 尽管此模块始终可用,但并非所有平台上都提供所有功能. 此模块中 ...
- netflix linux_Netflix如何处理故障转移,Anaconda,Linux命令行技巧,Python日期时间库,GDPR,微服务等
netflix linux 上周,Amjith Ramanujam的页面浏览量超过12,000, 关于Netflix如何在7分钟内完成故障转移的文章是我们失控的热门. 您是否有关于您的组织如何确保最大 ...
- python日历库_Python(19):Python标准库: 日期、时间和日历模块
一.time时间模块 import time 1 .时间戳:time.time() 时间戳(timestamp):时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量. 时间戳单位最 ...
- python处理时间的标准函数库_python+pandas+时间、日期以及时间序列处理方法
先简单的了解下日期和时间数据类型及工具 python标准库包含于日期(date)和时间(time)数据的数据类型,datetime.time以及calendar模块会被经常用到. datetime以毫 ...
- python中处理日期和时间的标准模块是-关于时间和Python的时间处理模块
概念 关于时间你因该了解的几个概念: 秒 在1967年的第13届国际度量衡会议上决定以原子时定义的秒作为时间的国际标准单位:铯133原子基态的两个超精细能阶间跃迁对应辐射的9,192,631,770个 ...
- python 日期时间处理_如何使用Python处理日期和时间
python 日期时间处理 当试图使事情与datetime模块一起工作时,大多数Python用户在我们诉诸猜测直到错误消失之前都面临着一个问题. datetime是似乎易于使用的API之一,但要求开发 ...
- python自学时间-学习Python、Python时间操作有哪些?
一.背景知识介绍: 1.时间是人类规定的产物,与长度单位是一个道理,米这个单位也是人类发明的.简单说就是地球自转1圈为1天,地球饶太阳公转1圈为1年,而且根据公转自转度量时间都是不可靠的(因为非匀速无 ...
- 【Python机器学习时间指南】一、Python机器学习的生态系统
本文主要记录<Python机器学习时间指南>第一章中1.2Python库和功能中的内容.学习机器学习的工作流程. 一.数据的获取和检查 requests获取数据 pandans处理数据 1 ...
- anaconda使用python写游戏,python娱乐时间:Anaconda方式搭建python开发环境
前言python是解释型语言,源码是普通文本,也是它的执行程序.所以商业视觉软件包开发不能用这个. python可以用于工业应用,因为除非你的设备绝密,否则让客户看到源码也无所谓. python用于工 ...
- C标准函数库中获取时间与日期、对时间与日期数据操作及格式化
表示时间的三种数据类型[编辑] 日历时间(calendar time),是从一个标准时间点(epoch)到现在的时间经过的秒数,不包括插入闰秒对时间的调整.开始计时的标准时间点,各种编译器一般使用19 ...
最新文章
- 剑指 Offer 59 - I. 滑动窗口的最大值
- 288.	Unique Word Abbreviation
- shell中的条件判断和比较
- Java并发编程系列
- 安装ubuntu后需要做的事
- python哪个国家的品牌_Python之初识Web,打造属于你的个人品牌!
- 攻防世界之misc新手区
- Verilog——hdb3编译码的层次化设计与实现
- mumu模拟器cpu设置_网易mc怎么提高fps
- 海外博士申请经历分享
- 在Centos8上部署Django环境(Nginx+mysql+uwsgi)
- 华为harmonyos 2.0测评,华为鸿蒙HarmonyOS 2.0第二轮测试推送-OS2.0测试版新增机型汇总 - 非凡软件站...
- PTA甲级模拟第九弹:1114-1117
- c语言里op,57-赋值语句中的op=形式
- SuperMap iDesktop 操作入门(一)创建文件型工作空间
- 高温玻璃彩釉机的打印精度是多少?
- Microsoft Visual C++ 和 Borland C++ Builder 之比较
- android 开发常用apk工具
- 计算七参数,原来是这么操作的,一学就会!
- 介绍一下遇到汉字不认识怎么办?