python常用库之time库

news2024/11/14 13:57:04

目录

  • 一、前言
    • time库中的常用函数
  • 二、time()函数
  • 三、localtime()和gmtime()函数
  • 四、strftime() 、asctime()、mktime()函数
    • (一)strftime()函数
    • (二)asctime()函数
    • (三)mktime()函数
  • 五、ctime()函数
  • 六、striptime()函数
  • 七、sleep()函数
  • 八、时间计算

一、前言

  程序开发中,根据时间选择不同处理方式的场景非常多,例如游戏的防沉迷系统、外卖平台的店铺营业状态管理等。Python中内置了一些与时间处理相关的库,如time、datatimecalendar
  time是最基础的时间处理库,该库本质上是一个模块,它包含的所有内容都定义在time.py文件中。

time库中的常用函数

  • time()
  • localtime()
  • gmtime()
  • strftime()
  • asctime()
  • ctime()
  • strptime()
  • sleep()

二、time()函数

  time()函数返回 以浮点数表示的从世界标准时间的1970年1月1日的00:00:00开始到现在的总秒数,也就是时间戳

#使用time()函数获取当前时间的时间戳
import time
print(time.time())		#获取时间戳

三、localtime()和gmtime()函数

  以时间戳的形势表示的时间是一个浮点数。python可以通过localtime函数()和gmtime()函数可以获取结构化时间

#语法格式:
localtime([secs])
gmtime([secs])

  secs参数是一个表示时间戳的浮点数,若不提供该参数,默认以time()函数获取的时间戳作为参数。
  localtime()函数和gmtime()都可以将时间戳转换为以元组表示的事件对象(struct_time),但localtime()得到的是当地时间,gmtime()得到的是世界统一时间(Coordinated Universal Time,缩写UTC)。

#使用localtime()函数获取时间
import time
print(time.localtime())
print(time.localtime(34,54))

#使用gmtime()函数获取时间
import time
print(time.gmtime())
print(time.gmtime(34,54))
元素含义取值
tm_year4位数字
tm_mon1~12
tm_mday1~31
tm_hour0~23
tm_min0~59
tm_sec0~60/61(61时闰秒)
tm_wday一周的第几日0~6(0为周一)
tm_yday一年的第几日1~366(366为儒略历)
tm_isdst夏令时1:夏令时;0:非夏令时;-1:不确定

四、strftime() 、asctime()、mktime()函数

  无论是采用浮点数形式还是元组形式表示的时间,其实都不符合人们的认知习惯。为了方便人们理解时间数据,Python提供了用于输出格式化时间字符串的strftime() 和 asctime()函数.

(一)strftime()函数

  strftime()借助时间格式控制符来输出格式化的时间字符串。

语法格式
strftime(format[ , t ])

  format是指代时间格式的字符串,参数t为structural_time对象,默认为当前时间,即localtime()函数返回的时间,该参数可以省略。

# 使用strftime()返回格式化的信息时间
import time
print(time.strftime('%a,%d %b %Y %H:%M:%S'))
#  运行结果
Tue,18 Apr 2023 152725

  若只使用部分时间格式控制符,可仅对时间信息中的相关部分进行格式化与输出。

# 只设定控制时分秒的3个格式符
import time
print(time.strftime('%H:%M:%S'))
# 运行结果
Tue,18 Apr 2023 152725

(二)asctime()函数

  asctime()函数用于输出格式化的时间字符串,但它只将struct_time对象转换为’Tue,18 Apr 2023 15:27:25’这种形式。

语法格式
asctime([ t ])

  参数t 与strftime()函数的参数t意义相同

import time
print(time.asctime())
gmtime = time.gmtime()
print(time.asctime(gmtime))
# 运行结果
Tue Apr 18 15:43:06 2023
Tue Apr 18 07:43:06 2023

(三)mktime()函数

  mktime()函数将struct_time时间对象t转换为时间戳,t代表当地时间。

# 示例代码
import time
t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)
secs = time.mktime( t )
print ("time.mktime(t) : %f" %  secs)
print ("asctime(localtime(secs)): %s" % time.asctime(time.localtime(secs)))
# 运行结果
time.mktime(t) : 1234861418.000000
asctime(localtime(secs)): Tue Feb 17 17:03:38 2009
时间格式控制符说明
%Y四位数的年份,取值范围为0001~9999
%m月份(01~12)
%d月中的一天
%B本地完整的月份名称,比如January
%b本地简化的月份名称,比如Jan
%a本地简化的周日期
%A本地完整的周日期
%H24小时制小时数(0~23)
%l12小时制小时数(1~12)
%p上下午,取值为AM或PM
%M分钟数(00~59)
%S秒(00~59)

五、ctime()函数

  ctime()函数用于将一个时间戳(以s为单位的浮点数)转换为“Tue Apr 18 07:43:06 2023”这种形式(结果同time.asctime()),若该函数未接收到参数,则默认以time.time()作为参数。

# 示例
import time
print(time.ctime())
print(time.ctime(34.56))
# 运行结果
Tue Apr 18 17:20:50 2023
Thu Jan  1 08:00:34 1970

六、striptime()函数

  striptime()函数用于将格式化的时间字符串转化为struct_time,该函数是strftime()函数的反向操作。

语法格式:
striptime(string,format)

  参数string表示格式化的时间字符串,format表示时间字符串的格式,string和format格式必须相统一
  使用strptime()函数将格式化的时间字符串转化为struct_time。

七、sleep()函数

  sleep()函数可让调用该函数的程序进行睡眠状态,即让其暂时挂起,等待一定时间后,再继续执行。sleep()函数接收一个以s为单位的浮点数作为参数,使用该参数控制进程或线程挂起的时长。

# 示例代码
import time
print('开始')
time.sleep(3.5)
print('结束')
# 运行结果
开始

结束

八、时间计算

  时间计算通常是指时间的加减。时间可以时间戳形式进行加减运算。

# 示例代码
import time
time_a =time.time()
time.sleep(3.5)
time_b=time.time()
print(time_a +time_b)
print(time_b -time_a)
# 运行结果
3363625416.0357375
3.5003199577331543

  对时间戳形式表示的时间进行计算,在计算之前可以先将其转换为时间戳的形式。
在这里插入图片描述

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

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

相关文章

【2023最新】超详细图文保姆级教程:App开发新手入门(5)

上文回顾,我们已经完成了一个应用的真机调试,本章我们来了解一下如何引入YonBuilder移动开发的(原生)移动插件, 并利用移动插件完成一个简单的视频播放器。 8. 「移动插件」的使用 8.1 什么是 「移动插件」? 用通俗…

TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:1~5

原文:Mobile Deep Learning with TensorFlow Lite, ML Kit and Flutter 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的…

【高危】Apache Spark 权限提升漏洞(CVE-2023-22946)

漏洞描述 Apache Spark 是一款支持非循环数据流和内存计算的大规模数据处理引擎。 使用 spark-submit 脚本在集群中启动任务可以通过指定proxy-user参数限制运行用户。在 Apache Spark 受影响版本中,攻击者通过指定自定义的classpath,则可以覆盖该配置…

2023最新面试题-Java-3

IO流 1. java 中 IO 流分为几种? 按照流的流向分,可以分为输入流和输出流;按照操作单元划分,可以划分为字节流和字符流;按照流 的角色划分为节点流和处理流。 Java Io 流共涉及 40 多个类,这些类看上去很杂乱&…

ChatGPT 70+款可以免费使用的AI工具,建议收藏

ChatGPT风靡全球,人人可用! 小红书上有关ChatGPT的笔记已有10w篇,相关话题浏览量也达到了1.12亿次。其中讨论最为热烈的,要数“ChatGPT使用教程”。(当然,类似的话题还包括,教你如何使用Midjour…

Navicat图表查看器 Crack

Navicat图表查看器 Crack Navicat图表查看器是一个查看图表工作区文件的简单工具。您可以浏览Navicat的图表工具和Navicat图表创建者创建的区域。 Navicat图表查看器,将图表中的数据显示为强大的可视化效果,允许您使用图形和图表查看数据。 将您的信息转…

Internet Download Manager(IDM)v6.41.11 免激活不弹窗版

Internet Download Manager(IDM)v6.41.11 免激活不弹窗版可提升你的下载速度多达5倍,安排下载时程,或续传一半的软件。Internet Download Manager的续传功能可以恢复因为断线、网络问题、计算机宕机甚至无预警的停电导致下传到一半…

大数据开发必备面试题Flume篇合集

大数据开发必备面试题Flume篇合集 1 、详细介绍Flume有哪些组件?2、你是如何实现Flume数据传输的监控的?3、Flume参数怎么调优?4、简述下Flume的事务机制。5、 Flume采集数据会丢失吗?6、简述下Flume使用场景。7、简述下 Flume丢包问题。8、…

【C语言】文件操作

目录 1.为什么使用文件 2.什么是文件 2.1 程序文件 2.2 数据文件 2.3文件名 3.文件的打开和关闭 3.1文件指针 3.2文件的打开和关闭 4.程序的顺序读写 4.2对比一组函数 5.文件的随机读写 5.1 fseek 5.2 ftell 5.3 rewind 6.文本文件和二进制文件 7.文件读取结束的…

2023年银行理财子公司研究报告

第一章 行业发展概况 1.1 行业概况 所谓“银行理财子公司”,其实就是由商业银行作为控股股东发起设立的,并经国务院银行业监督管理机构批准;主要从事理财业务;独立于母行,具有独立法人地位的非银行金融机构。像工商银…

Redission分布式锁

实现过程: 只要线程一加锁成功,就会启动一个 watch dog 看门狗,它一个后台线程, 会每隔 10 秒检查一下,如果线程 1 还持有锁,那么就会不断延长锁 key 生存时间。因此,Redisson 解决了锁过期释放…

Commitizen规范git提交代码

首先全局安装Commitizen,运行: npm install -g commitizen 然后在项目中开启终端,安装cz-customizable npm i cz-customizable --save-dev 然后在package.json中配置如下代码: "config": {"commitizen":…

虹科干货| 虹科Redis企业版数据库:告别游戏卡顿,让快乐加速!

“卡顿一分钟,玩家两行泪” 游戏已成为年轻人最主要的消遣娱乐方式之一,游戏卡顿给玩家带来糟糕游戏体验背后的原因是什么?数据存储与查询速度不够快! 游戏开发领域,不仅拥有海量的数据,甚至还要做到实时…

Flowable6.x导出/查看/跟踪流程图

Flowable6.x导出/查看/跟踪流程图 项目源码仓库 Flowable诞生于Activiti,是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义,可以十分灵活地加入你的应用/服务/构架。 本文介绍4种绘制流程图的方式,前…

TryHackMe-Set(Windows渗透测试 | WinDefender免杀)

Set 您再次发现自己在Windcorp公司的内部网络上。上次你去那里的味道真好,你回来了 了解更多。 但是,这次他们设法保护了域控制器,因此您需要找到另一台服务器,并在第一次扫描时发现“Set”。 Set被用作开发人员的平台&#xf…

集团企业大数据治理解决方案word

第一章 集团企业大数据治理阶段目标 通过数据平台和BI应用建设,集团企业大数据将搭建统一的大数据共享和分析平台,对各类业务进行前瞻性预测及分析,为集团企业各层次用户提供统一的决策分析支持,提升数据共享与流转能力。 一.1、…

Redis持久化的几种方式

Redis 持久化也是 Redis 和 Memcached 的主要区别之一,因为 Memcached 是不具备持久化功能的。 1.持久化的几种方式 Redis 持久化拥有以下三种方式: 快照方式(RDB, Redis DataBase)将某一个时刻的内存数据,以二进制的…

SpringAOP入门基础银行转账实例(进阶版)------------事务处理

SpringAOP入门基础银行转账实例**(进阶版)**------------事务处理 由上一节讲述的通过Connection和QueryRunner对事务进行的处理(详情可以去我之前写的博客文章:https://blog.csdn.net/m0_56245143/article/details/130069160?spm1001.2014…

派盘为您的个人数据安家

现如今,我们的生活中有着各种各样的数据。在工作中会有各种文件、邮件;在生活中则有照片和视频等。数据的来源多,时间点不一致且混乱。 数据是否能安全、稳定、长久的存储以及便捷高效的使用对我们来说相当重要。你是否经常出差需要带上电脑或者移动硬盘,想存网盘又怕丢失或…

牛客网:HJ1 字符串最后一个单词的长度

题目部分: 解题思路: 方案一: 对于本题,看似简单,其实有坑。 就是在获取单词这块,不能直接用cin这样子操作,否则不能获取到完整的单词,因为cin这样的读到空格就不会往后续读了&…