百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

一篇文章总结一下Python库中关于时间的常见操作

off999 2024-09-13 13:29 38 浏览 0 评论

前言

本次来总结一下关于Python时间的相关操作,有一个有趣的问题。

如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。

但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。

所以思来想去,还是总结一下吧,本次会采用类型注解方式。


time包


import time

时间戳

1970年1月1日00:00:00标准时区诞生到现在时间一共过了多少秒。

代码



timestamp = time.time()  # type:floatprint(timestamp, type(timestamp))

执行结果

睡眠

有时候可能我们可能需要模仿一些IO请求,假装让程序休眠一下,所以需要用到timesleep函数。

代码



# 睡眠 1秒time.sleep(1)

本地时区

本地时区需要用到timelocaltime方法。

代码



t = time.localtime()  # type:time.struct_timeprint(t, type(t))

执行结果

localtime还能接收一个时间戳参数。

代码




# 将时间戳转换成 struct_time 对象t = time.localtime(1606395685.1878598)  # type:time.struct_timeprint(t, type(t))

执行结果

简单的时间格式

代码



t = time.ctime()  # type:strprint(t, type(t))

执行结果

虽然这个能把时间展示出来,但是这个格式实在是不是太好看。


同理,time.ctime()也是可以接收一个时间戳的。

代码



t = time.ctime(1606395685.1878598)  # type:strprint(t, type(t))

执行结果

时间格式化

日期格式 -> 字符串(strftime)

代码




t = time.localtime()  # type:time.struct_timet_str = time.strftime("%Y-%m-%d", t)  # type:strprint(t_str, type(t_str))

执行结果

字符串日期 -> 日期(strptime)

代码




t_str = "2020-11-02"t_time = time.strptime(t_str, "%Y-%m-%d")  # type:time.struct_timeprint(t_time, type(t_time))

执行结果

格式化补充

主要有如下格式

格式含义%Y完整的年份%m月份(01 - 12)%d一个月中的第几天(01 - 31%H一天中的第几个小时(24小时制,00 - 23)%M分钟数(00 - 59)%S秒(01 - 61)

具体详见:


https://www.runoob.com/python/python-date-time.html


datetime包

注:datetimetime是两个不同的类型,不能混用。


from datetime import datetime

datetime.today()

代码





t = datetime.today()  # type:datetimeprint(t, type(t))print(t.year)  # 年份print(t.month)  # 月份

执行结果

datetime.now()

datetime.today()基本一样,返回的是本地时间

代码



t = datetime.now()  # type:datetimeprint(t,type(t))

执行结果

datetime.utcnow()

utcnow返回的是标准(UTC)时间,上述俩返回的都是本地时间,我们是东八区

代码





t = datetime.now()print("东八区时间:", t)t = datetime.utcnow()  # type:datetimeprint("UTC时间:", t)

执行结果

时间戳转datetime

有时候,我们拿到的,就是时间戳,那就只能转了。

代码







# 时间戳timestamp = time.time()print(f"timestamp:{timestamp},type:{type(timestamp)}")# 时间戳转datetimet = datetime.fromtimestamp(timestamp)print(f"t:{t},type:{type(t)}")

执行结果

datetime -> 字符串日期(strftime)

代码






from datetime import datetime
t = datetime.now()str_datetime = t.strftime("%Y-%m-%d %H:%M:%S")print(f"字符串日期:{str_datetime},type:{type(str_datetime)}")

执行结果

字符串日期 -> datetime(strptime)

代码






from datetime import datetime
str_datetime = "2020-11-29 22:05:20"t = datetime.strptime(str_datetime, "%Y-%m-%d %H:%M:%S")print(f"t:{t},type:{type(t)}")

执行结果

时间加减

这才是本次的重头戏,好像只有datetime这个包,才有时间加减的。

时间加减的具体用途很多,必须多久过期什么的,多久之后提醒,都需要提前计算时间,还是很重要的。

代码








from datetime import datetimeimport datetime as idatetime
t = datetime.now()print(f"当前时间:{t}")three_day = t + idatetime.timedelta(days=3)print(f"三天后时间:{three_day}")

执行结果

可以发现,这个时间确实是+成功了。

但是自带的时间加减,有个题,只能加天,不能加月,甚至年。

如果想要时间+月等,还要自己写逻辑。

datetime时间自由加减

有个包正好解决了这个问题。

安装


pip install python-dateutil

代码












from datetime import datetimefrom dateutil.relativedelta import relativedelta
t = datetime.now()print(f"当前时间:{t}")three_time = t + relativedelta(months=3)print(f"三个月后时间:{three_time}")one_year = t+relativedelta(years=1)print(f"一年后时间:{one_year}")up_year = t+relativedelta(years=-1)print(f"去年这个时间:{up_year}")

执行结果

用法很简单,如果想加月/年份,就写正数,如果想减,就写负数,这个方法基本上将python在操作时间上的缺点给弥补了。


总结

本篇主要讲述的是关于Python时间的相关总结,相对来说,更推荐使用datetime

需要注意的是,timedatetime是俩类型,是不能混用的。

其实最重要的是字符串时间->时间类型,这个在实际中用的非常多!

顺便还有python-dateutilrelativedelta相关方法,能够自由加减时间,算是挺方便的。

如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。

越努力,越幸运。如果觉得还不错,记得动手点赞一下哈。感谢你的观看。

相关推荐

大文件传不动?WinRAR/7-Zip 入门到高手,这 5 个技巧让你效率翻倍

“这200张照片怎么传给女儿?微信发不了,邮箱附件又超限……”62岁的张阿姨对着电脑犯愁时,儿子只用了3分钟就把照片压缩成一个文件,还教她:“以后用压缩软件,比打包行李还方便!”职场人更懂这...

电脑解压缩软件推荐——7-Zip:免费、高效、简洁的文件管理神器

在日常工作中,我们经常需要处理压缩文件。无论是下载软件包、接收文件,还是存储大量数据,压缩和解压缩文件都成为了我们日常操作的一部分。而说到压缩解压软件,7-Zip绝对是一个不可忽视的名字。今天,我就来...

设置了加密密码zip文件要如何打开?这几个方法可以试试~

Zip是一种常见的压缩格式文件,文件还可以设置密码保护。那设置了密码的Zip文件要如何打开呢?不清楚的小伙伴一起来看看吧。当我们知道密码想要打开带密码的Zip文件,我们需要用到适用于Zip格式的解压缩...

大文件想要传输成功,怎么把ZIP文件分卷压缩

不知道各位小伙伴有没有这样的烦恼,发送很大很大的压缩包会受到限制,为此,想要在压缩过程中将文件拆分为几个压缩包并且同时为所有压缩包设置加密应该如何设置?方法一:使用7-Zip免费且强大的文件管理工具7...

高效处理 RAR 分卷压缩包:合并解压操作全攻略

在文件传输和存储过程中,当遇到大文件时,我们常常会使用分卷压缩的方式将其拆分成多个较小的压缩包,方便存储和传输。RAR作为一种常见的压缩格式,分卷压缩包的使用频率也很高。但很多人在拿到RAR分卷...

2个方法教你如何删除ZIP压缩包密码

zip压缩包设置了加密密码,每次解压文件都需要输入密码才能够顺利解压出文件,当压缩包文件不再需要加密的时候,大家肯定想删除压缩包密码,或是忘记了压缩包密码,想要通过删除操作将压缩包密码删除,就能够顺利...

速转!漏洞预警丨压缩软件Winrar目录穿越漏洞

WinRAR是一款功能强大的压缩包管理器,它是档案工具RAR在Windows环境下的图形界面。该软件可用于备份数据,缩减电子邮件附件的大小,解压缩从Internet上下载的RAR、ZIP及其它类...

文件解压方法和工具分享_文件解压工具下载

压缩文件减少文件大小,降低文件失效的概率,总得来说好处很多。所以很多文件我们下载下来都是压缩软件,很多小伙伴不知道怎么解压,或者不知道什么工具更好,所以今天做了文件解压方法和工具的分享给大家。一、解压...

[python]《Python编程快速上手:让繁琐工作自动化》学习笔记3

1.组织文件笔记(第9章)(代码下载)1.1文件与文件路径通过importshutil调用shutil模块操作目录,shutil模块能够在Python程序中实现文件复制、移动、改名和删除;同时...

Python内置tarfile模块:读写 tar 归档文件详解

一、学习目标1.1学习目标掌握Python内置模块tarfile的核心功能,包括:理解tar归档文件的原理与常见压缩格式(gzip/bz2/lzma)掌握tar文件的读写操作(创建、解压、查看、过滤...

使用python展开tar包_python拓展

类Unix的系统,打包文件经常使用的就是tar包,结合zip工具,可以方便的打包并解压。在python的标准库里面有tarfile库,可以方便实现生成了展开tar包。使用这个库最大的好处,可能就在于不...

银狐钓鱼再升级:白文件脚本化实现GO语言后门持久驻留

近期,火绒威胁情报中心监测到一批相对更为活跃的“银狐”系列变种木马。火绒安全工程师第一时间获取样本并进行分析。分析发现,该样本通过阿里云存储桶下发恶意文件,采用AppDomainManager进行白利...

ZIP文件怎么打开?2个简单方法教你轻松搞定!

在日常工作和生活中,我们经常会遇到各种压缩文件,其中最常见的格式之一就是ZIP。ZIP文件通过压缩数据来减少文件大小,方便我们进行存储和传输。然而,对于初学者来说,如何打开ZIP文件可能会成为一个小小...

Ubuntu—解压多个zip压缩文件.zip .z01 .z02

方法将所有zip文件放在同一目录中:zip_file.z01,zip_file.z02,zip_file.z03,...,zip_file.zip。在Zip3.0版本及以上,使用下列命令:将所有zi...

如何使用7-Zip对文件进行加密压缩

7-Zip是一款开源的文件归档工具,支持多种压缩格式,并提供了对压缩文件进行加密的功能。使用7-Zip可以轻松创建和解压.7z、.zip等格式的压缩文件,并且可以通过设置密码来保护压缩包中的...

取消回复欢迎 发表评论: