图解python | 时间和日期处理
2022/2/23 20:22:35
本文主要是介绍图解python | 时间和日期处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
作者:韩信子@ShowMeAI
教程地址:http://www.showmeai.tech/tutorials/56
本文地址:http://www.showmeai.tech/article-detail/90
声明:版权所有,转载请联系平台与作者并注明出处
Python日期与时间
在Python的开发过程中,我们经常要处理时间类型的数据,Python内置了 time
, datetime
等标准库,帮助我们对时间型进行处理,在本节内容中,我们将围绕这两个标准库,详细展开介绍常用方法。
1.time模块
在Python中,time
模块主要用于将时间戳转换为具体的日期时间,但time
模块表示日期时间的对象结构简单,不适合进行复杂的操作和表示。
(1)模块用法
time
模块中只有time.struct_time
一个类:
struct_time
是一个转换秒数得到的结构化的时间对象,可以通过下标或属性名称获取对象的年月日时分秒等属性。调用 gmtime()
,localtime()
,strptime()
等方法可得到 struct_time
实例。
>>> st = time.localtime() >>> st time.struct_time(tm_year=2021, tm_mon=10, tm_mday=27, tm_hour=19, tm_min=27, tm_sec=31, tm_wday=2, tm_yday=300, tm_isdst=0) >>> st.tm_mon 10 >>> st[1] 10
# 在struct_time和字符串之间进行转换 >>> time.strftime('%H:%M:%S') '19:10:37' >>> time.strptime("30 Nov 00", "%d %b %y") time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
import time # 格式化成2021-10-27 19:56:36形式 print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) # 格式化成Sat Mar 28 22:24:24 2016形式 print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime())) # 将格式字符串转换为时间戳 a = "Wed Oct 27 19:56:36 2021" print(time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y")))
2.datetime模块
datetime
模块支持日期和时间的运算,它提供了一些用于操作日期和时间的类。该模块的绝大部分功能都围绕着以下 4 个类(以及另外两个关于时区的类)的方法和属性来实现。
(1)date
类及用法
date
类表示日期类型。
支持的操作符:
- 支持与另一
date
对象进行==
,≤
,<
,≥
,>
等比较操作。 - 支持与
timedelta
对象进行加减操作,结果依然为date
对象。 - 支持与另一
date
对象进行相减操作,得到timedelta
对象。 - 支持哈希。
代码示例:
# 传入日期对应的年月日参数,实例化date类 >>> from datetime import date >>> date(2021, 10, 29) datetime.date(2021, 10, 29) # 可以通过时间戳获得时间 >>> date.fromtimestamp(time.time()) datetime.date(2021, 10, 29) >>> d2 = date(2021, 10, 29) >>> d1 = date(2021, 10, 27) >>> d2 > d1 True >>> d2 - d1 datetime.timedelta(days=2)
(2)time
类及用法
time
类表示时间(时分秒)类型。
支持的操作符
- 支持与另一
time
对象进行==
,≤
,<
,≥
,>
等比较操作。 - 支持哈希。
代码示例
>>> from datetime import time >>> t = time.fromisoformat('19:32:10') >>> t.strftime('%Hh %Mm %Ss') '19h 32m 10s' >>> t = time(hour=19, minute=27, second=55) >>> t.isoformat() '19:27:55'
(3)datetime
类及用法
datetime
类表示包含日期时分的时间类型,可以视作 date
和 time
实例的组合体,因此同时具备了两种对象的大部分方法和属性。
支持的操作符
datetime
支持与date
进行相等比较,但结果一定为False
,除此之外只支持与另一datetime
对象执行==
,≤
,<
,≥
,>
等比较操作。- 支持与
timedelta
相加,结果为datetime
;支持与timedelta
对象进行加减,结果依然为datetime
对象,与另一datetime
对象进行相减,得到timedelta
对象。 - 同样支持哈希。
代码示例
>>> from datetime import datetime >>> datetime(year=2021, month=10, day=29) datetime.datetime(2021, 10, 29, 0, 0) >>> datetime.now() datetime.datetime(2021, 10, 29, 14, 51, 18, 731235) >>> datetime.fromisoformat('2021-10-29 16:09:32') datetime.datetime(2021, 10, 29, 16, 9, 32) >>> dt = datetime.now() >>> dt.timestamp() 1635317544.682565 >>> dt.date() datetime.date(2021, 10, 29)
(4)timedelta
timedelta
类对象表示两个 datetime
对象之间的差异。
支持的操作符
-
只支持与另一
timedelta
进行比较,进行==
,≤
,<
,≥
,>
等比较操作。 -
timedelta
对象支持支持加减操作,datetime
与timedelta
相加或相减仍然返回datetime
。 -
timedelta
还支持乘除模除等操作符。 -
支持哈希。
-
timedelta
是有符号的,支持abs()
函数,可返回两个datetime
之间的绝对间隔。
代码示例
>>> from datetime import timedelta >>> timedelta(days=2) datetime.timedelta(days=2) >>> dt1 = datetime.now() >>> dt2 = datetime.now() >>> dt2 -dt1 datetime.timedelta(seconds=4, microseconds=476390) >>> d = timedelta(minutes=3, seconds=35) >>> d.total_seconds() 215.0
资料与代码下载
本教程系列的代码可以在ShowMeAI对应的github中下载,可本地python环境运行,可以访问google的宝宝也可以直接借助google colab一键运行与交互操作学习哦!
本教程系列涉及的Python速查表可以在以下地址下载获取:
- Python速查表
拓展参考资料
- Python教程—Python3文档
- Python教程-廖雪峰的官方网站
ShowMeAI相关文章推荐
- python介绍
- python安装与环境配置
- python基础语法
- python基础数据类型
- python运算符
- python条件控制与if语句
- python循环语句
- python while循环
- python for循环
- python break语句
- python continue语句
- python pass语句
- python字符串及操作
- python列表
- python元组
- python字典
- python集合
- python函数
- python迭代器与生成器
- python数据结构
- python模块
- python文件读写
- python文件与目录操作
- python错误与异常处理
- python面向对象编程
- python命名空间与作用域
- python时间和日期
ShowMeAI系列教程推荐
- 图解Python编程:从入门到精通系列教程
- 图解数据分析:从入门到精通系列教程
- 图解AI数学基础:从入门到精通系列教程
- 图解大数据技术:从入门到精通系列教程
这篇关于图解python | 时间和日期处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南