python内置模块time详解(我们需要了解的多种时间格式)

news2024/9/22 10:07:11

Python的time模块提供了各种与时间相关的函数。我们可以获取当前时间、操作时间日期、计算两个时间差等。

时间有两种标准表示法:

  • 数字表示: 整数或浮点数,通常是自从1970年1月1日以来的秒数。
  • 9个整数组成的元组:元组项包含年份,月份,天,小时,分钟,秒,星期,一年中的第几天,夏令时标志。

使用time模块

要使用 time模块,直接导入它即可。

import time

以下是time模块提供的主要功能函数

获取数字表示法的函数

1. time()

不带参数,返回时间浮点数,时间是自1970年1月1日以来的秒数。

测试代码:

print(time.time())

执行后结果:

1725070125.995992

2. time_ns()

不带参数,返回时间整数,时间是自1970年1月1日以来的纳秒数。(1秒=10的9 次方纳秒)

测试代码:

print(time.time_ns())

执行后结果:

1725070125995997000

我们除以10的9次方得到的结果就是秒。

还有其他一些函数monotonic(),perf_counter(),process_time(),thread_time()也会返回数字时间,平常不太常用,不过多介绍。

计算时间之差

以上time() 和time_ns函数返回的是浮点数或者整数,所以可以用于计算时间之差。

举例:打印执行代码前和代码后的时间,并计算时间之差。

now_time = time.time()
print(f'当前时间:{now_time}')

#执行代码sleep 5s
time.sleep(5)

after_time = time.time()
print(f'等待以后:{after_time}')

print(f'时间之差:{after_time - now_time}')

结果:

当前时间:1725097798.896244
等待以后:1725097803.901393
时间之差:5.005148887634277

获取元组表示法的函数

3 gmtime(seconds=None)

返回的是UTC时间的元组(中国位于8时区,UTC时间是比当前时间往前8个小时的时间。)

该函数返回的是time.struct_time类对应的时间元组,struct_time类代码如下:

关于参数:

  • 不传seconds秒数,获取的是当前时间对应UTC的时间元组。
  • 传seconds秒数,获取的是从1970年1月1日以来加上传的秒数对应的时间元组。

测试代码:

#打印当前UTC时间
print(time.gmtime())

结果:

time.struct_time(tm_year=2024, tm_mon=8, tm_mday=31, tm_hour=3, tm_min=10, tm_sec=27, tm_wday=5, tm_yday=244, tm_isdst=0)

#打印1970年1月1日以来加上36000秒的时间(10个小时)

print(time.gmtime(36000))

结果:

time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=10, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

4 localtime(seconds=None)

返回的是当前时间的元组。等价于gmtime函数获取的时间加上所在时区,使用方法和gmtime函数一致。

关于参数:

  • 不传seconds秒数,获取的是当前时间元组。
  • 传seconds秒数,获取的是从1970年1月1日以来加上传的秒数对应的时间元组。

测试代码:

#打印当前时间

print(time.localtime())

结果:

time.struct_time(tm_year=2024, tm_mon=8, tm_mday=31, tm_hour=11, tm_min=34, tm_sec=10, tm_wday=5, tm_yday=244, tm_isdst=0)

#打印1970年1月1日以来加上36000秒的时间(10个小时)

print(time.localtime(36000))

结果:区别是小时数加上了时区

time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=18, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

将时间转换为可读性强的函数

5 asctime(p_tuple=None)

asctime()函数将struct_time元组对象转换为一个可读的、24小时制的时间字符串。这个字符串的格式是固定的,类似于'Sun Jun 20 09:21:05 2024'。

关于参数:

  • 不传p_tuple,获取的是当前时间。
  • 传p_tuple,获取的是对应p_tuple时间元组转换后的时间。

测试代码:

#打印当前时间

print(time.asctime())

结果:Sat Aug 31 12:35:05 2024

#打印传入时间localtime函数获取的时间元组转换后的时间

print(time.asctime(time.localtime(36000000)))

结果:Mon Feb 22 00:00:00 1971

6 ctime(seconds=None)

ctime()函数将传入的时间戳秒数转换为一个可读的、24小时制的时间字符串。这个字符串的格式是固定的,类似于'Sun Jun 20 09:21:05 2024'。

关于参数:

  • 不传seconds秒数,获取的是当前时间。
  • 传seconds秒数,获取的是对应seconds秒数转换后的时间。

测试代码:

#打印当前时间

print(time.ctime())

结果:Sat Aug 31 12:35:05 2024

#打印传入时间localtime函数获取的时间元组转换后的时间

print(time.ctime(36000000))

结果:Mon Feb 22 00:00:00 1971

转为时间戳的函数

7 mktime(p_tuple=None)

mktime()函数必须传一个p_tuple时间元组,将struct_time元组对象转换为时间戳(时间戳为自1970年1月1日以来的秒数),

关于参数:

参数可以是time.gmtime()或者time.localtiime()获取到的时间元组。

测试代码:

#打印传入时间localtime函数获取的时间元组转换后的时间戳

print(time.mktime(time.localtime()))

结果:1725082686.0

时间格式化-将时间元组转为一定格式的字符串

8 strftime(format,p_tuple=None)

strftime()函数必须传一个p_tuple时间元组,将struct_time元组对象转换为时间戳(时间戳为自1970年1月1日以来的秒数)。

参数:

  • format:传入如下时间格式组成的字符串。

%Y:年份,比如2024

%m:月份,比如01,02,直到12

%d:天数,比如一个月中的第1天,第2天,直到第31天

%H:小时,为24小时制,比如从00,01直到23

%M:分钟,比如从00,01直到59

%S:秒数,比如从00,01直到59

%z: UTC时区偏移

%a :缩写的星期几,比如Sat代表星期六

%L:完整的星期几,比如Staturday代表星期六

%b:缩写的月份,比如Aug代表8月份

%B :完整的月份,比如August代表8月份

%c:按照一定格式展示,比如Sat Aug 31 14:01:17 2024

%I:小时,为12进制。比如01,02,直到12

%p: AM或PM

  • p_tuple:传入时间元组,将时间元组按照format格式转为我们想要的时间格式。如果不传,默认使用localtime函数获取的当前时间元组。

测试代码:

print(time.strftime('%Y%m%d%H%M%S'))
结果:20240831140117
print(time.strftime('%Y-%m-%d-%H-%M-%S'))
结果:2024-08-31-14-01-17
print(time.strftime('%Y-%m-%d,%H-%M-%S,%a,%A,%b,%B,%c,%l,%p'))
结果:2024-08-31,14-01-17,Sat,Saturday,Aug,August,Sat Aug 31 14:01:17 2024, 2,PM

时间格式化-将时间字符串转为时间元组

9 strptime(string,format)

strptime()函数将时间字符串按照格式转为时间元组。

format参数的使用如strftime函数中的介绍。

string参数传入的是时间字符串,同样跟strftime函数返回的字符串一样。

要注意:format格式和string的格式要一致,否则报错。

比如时间字符串’20240831173340’对应的格式’%Y%m%d%H%M%S’,时间字符串’2024-08-31-17-33-40’对应的格式’%Y-%m-%d-%H-%M-%S’

测试代码:

print(time.strptime('20240831173340','%Y%m%d%H%M%S'))
结果:
time.struct_time(tm_year=2024, tm_mon=8, tm_mday=31, tm_hour=17, tm_min=33,
                 tm_sec=40, tm_wday=5, tm_yday=244, tm_isdst=-1)

print(time.strptime(time.strftime('%Y-%m-%d,%H-%M-%S,%a,%b'),'%Y-%m-%d,%H-%M-%S,%a,%b'))
结果:
time.struct_time(tm_year=2024, tm_mon=8, tm_mday=31, tm_hour=17, 
                 tm_min=36, tm_sec=28, tm_wday=5, tm_yday=244, tm_isdst=-1)

sleep等待

10 sleep(seconds)

是非常常用的函数,表示等待给定的秒数,再继续执行后续代码。可传入整数或者浮点数的秒数。比如sleep(5.5)表示等待5.5s。

测试代码:

print(f'当前时间:{time.asctime()}')
time.sleep(5)
print(f'等待以后:{time.asctime()}')

结果:时间等待5s才执行后续代码。
当前时间:Sat Aug 31 17:44:13 2024
等待以后:Sat Aug 31 17:44:18 2024

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

----感谢读者的阅读和学习,谢谢大家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2096253.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第 4 章 第 4 章 卷积神经网络-datawhale ai夏令营

独热向量 y ′ 的长度决 定了模型可以识别出多少不同种类的东西。我们希望 y ′ 和 yˆ 的交叉熵越小越好。 为了避免过拟合,在做图像识别的时候,考虑到图像本身的特性,并不一定 需要全连接,即不需要每个神经元跟输入的每个维度都…

进程通信——消息队列

文章目录 1.概念1.0 IPC1.1 什么是消息队列1.2 消息队列工作机制1.3 消息队列与其他进程通信机制的比较: 2.使用System-V版2.1 用户消息缓冲区2.2 创建消息队列msgget2.3 添加消息到消息队列msgsend2.4 从消息队列读取消息、2.5 消息队列的控制函数msgctrl2.6 msqid…

SpringBoot中,启动A服务,naocs却注册B服务,解决思路。

今天遇到了一个令我非常费解的报错,我明明启动的是auth服务,但是nacos愣是给我注册的patient服务,下面看看解决思路(虽然我这个问题很乌龙,但如果真的是你的配置有问题,那么这篇文章也是可以帮助到你。&…

开源通用验证码识别OCR —— DdddOcr 源码赏析(二)

文章目录 前言DdddOcr分类识别调用识别功能classification 函数源码classification 函数源码解读1. 分类功能不支持目标检测2. 转换为Image对象3. 根据模型配置调整图片尺寸和色彩模式4. 图像数据转换为浮点数据并归一化5. 图像数据预处理6. 运行模型,返回预测结果 …

如何在Windows和Mac上免费提取RAR文件?这里有方法

序言 你有没有下载过一个文件,却发现它有一个奇怪的.rar文件扩展名?RAR是一种压缩文件格式,与ZIP文件非常相似,在本文中,我们将向你展示如何在Windows或macOS上打开RAR文件。 如何在Windows 11上打开RAR文件 Windows 11在2023年增加了对RAR文件的原生支持。从那时起,你…

前端框架vue3中的条件渲染(v-show,v-if,v-else-if,v-else)

目录 v-show: 需求&#xff1a; v-if 区别与v-show&#xff1a; v-if和v-show的选择&#xff1a; v-else-if和v-else 联合使用&#xff1a; v-show: 部分代码如图&#xff1a; <body><div id"root"><div ><h1>n的值为{{n}}</h1>…

【计算机网络】浏览器输入访问某网址时,后台流程是什么

在访问网址时&#xff0c;后台的具体流程可以因不同的网站、服务器和应用架构而异。 实际过程中可能还涉及更多的细节和步骤&#xff0c;如缓存处理、重定向、负载均衡等。 此外&#xff0c;不同的网站和应用架构可能会有不同的实现方式和优化策略。 部分特定网站或应用&#x…

数据仓库系列19:数据血缘分析在数据仓库中有什么应用?

你是否曾经在复杂的数据仓库中迷失方向&#xff0c;不知道某个数据是从哪里来的&#xff0c;又会流向何方&#xff1f;或者在处理数据质量问题时&#xff0c;无法快速定位根源&#xff1f;如果是这样&#xff0c;那么数据血缘分析将会成为你的得力助手&#xff0c;帮助你在数据…

协议转换桥+高速协议传输终端

多路协议传输终端&#xff08;正在更新&#xff09; 整体框图&#xff08;正在更新&#xff09; 万兆UDP协议栈 整体框图 10G 8b10b phy层设计 整体框图 报文格式

从pdf复制的表格内容粘贴到word或excel表格保持表格格式

对于it工作&#xff0c;硬件和软件&#xff0c;经常需要从pdf复制表格内容到word或excel&#xff0c;但是windows的ctrlc和ctrlv只能复制内容而不能保留表格的格式。 粘贴进word或excel的表格后&#xff0c;不能保持原来表格的排列&#xff0c;特别是word&#xff0c;复制的pdf…

[Leetcode] 接雨水(相向双指针)

可以直接移步大神的解题思路&#xff0c;非常详细 -> 盛最多水的容器 接雨水_哔哩哔哩_bilibili 11. 盛最多水的容器 https://leetcode.cn/problems/container-with-most-water/description/ 42. 接雨水 https://leetcode.cn/problems/trapping-rain-water/description/ 11…

并发编程之LockSupport的 park 方法及线程中断响应

并发编程之LockSupport的 park 方法及线程中断响应-CSDN博客

STM32CubeIDE

文章目录 Stm32CubeIDE开发环境介绍获取路径 新建工程 Stm32CubeIDE 开发环境介绍 也就是说IDE是集合了CubeMX 和MDK5的。 区别&#xff1a; 获取路径 官网&#xff1a;https://www.st.com/en/development-tools/stm32cubeide.html A盘路径&#xff1a;A盘\6&#xff0c;软…

Signed distance fields (SDFs) and Truncated Signed Distance Field(TSDF)

1. Signed distance fields (SDFs) 笔记来源&#xff1a; [1] Signed distance fields (SDFs) [2] Signed Distance Function (SDF): Implicit curves or surfaces [3] Ray Marching and Signed Distance Functions [4] Truncated Signed Distance Function [5] Wiki/Signed d…

个人旅游网(4)——功能详解——收藏功能

文章目录 一、收藏排行榜功能1.1、接口详解1.1.1、findRouteList 二、收藏功能2.1、接口详解2.1.1、find&#xff08;用于判断当前旅游路线是否已被收藏&#xff09;2.1.2、add-favorite&#xff08;用于实现收藏功能&#xff09;2.1.3、remove-favorite&#xff08;用于实现取…

ubuntu20.04搭建kubernetes1.28.13集群配置calico网络插件

写在前面 这里是我在搭建过程中从某站找到的教学视频,搭载的都是最新的,大家可以参考一下 搭建kubernetes集群学习视频: 视频链接。最后面会有我遇见报错信息的所有连接和解决方案,自行查看 不说废话,直接开搭 搭建集群大纲 一、三台虚拟机的初始化 二、三台虚拟机连接…

内存管理篇-19 TLB和Table wake unit

TLB这几节&#xff0c;停下来感觉怪怪的。没有从TLB的引入&#xff0c;工作原理&#xff0c;实际源码应用来深入分析。 TLB 是一种高速缓存&#xff0c;用于存储最近使用的页表项&#xff08;Page Table Entries, PTEs&#xff09;。它的主要目的是加速虚拟地址到物理地址的转换…

卷积公式的几何学理解

1、Required Knowledge 1.1、概率密度函数 用于描述连续型随机变量在不同取值上的概率密度&#xff0c;记作 f ( x ) f(x) f(x)。 如随机变量 X X X的分布为正态分布&#xff0c;则其概率密度函数为&#xff1a; f ( x ) 1 σ 2 π e − ( x − μ ) 2 2 σ 2 f(x)\frac{1}…

容器化你的应用:使用 Docker 入门指南

Docker 是一个流行的平台&#xff0c;它允许开发者将应用程序及其依赖项打包在一起&#xff0c;形成一个轻量级、可移植的容器。这种做法极大地简化了开发、测试和部署流程&#xff0c;因为无论是在本地还是在云端&#xff0c;容器都能确保应用的一致性。本指南将带你从头开始学…

粗心的懒洋洋做Python二级真题(错一大堆,分享错题)

以下内容&#xff0c;皆为原创&#xff0c;制作不易。感谢大家的点赞和关注。 一.数据流图 数据流图&#xff08;Data Flow Diagram&#xff0c;简称DFD&#xff09;是一种图形化表示法&#xff0c;用于展示信息系统中数据的流动和处理过程。 考点&#xff1a;数据流图是系统逻…