Python datetime模块详解:日期时间处理与格式转换
本文详细介绍Python中datetime模块的核心用法,涵盖date、datetime、time等类的创建与属性获取。重点讲解如何计算时间间隔timedelta,以及利用strftime和strptime进行日期字符串与datetime对象的相互转换,并介绍parse函数的灵活解析能力。
Python datetime模块

在Python中,处理时间相关的常用模块包括time、datetime和calendar。顾名思义,time模块主要用于表示具体的时间点(如时、分、秒、毫秒),而calendar模块则用于处理日历时间。本章将重点讨论datetime模块的功能与应用。
先看看 datetime 模块都有些什么
datetime 模块中有什么
| 序号 | 描述 | 类型 | |
|---|---|---|---|
| 1 | MAXYEAR | 9999,指能支持的最大年份 | int |
| 2 | MINYEAR | 1,指能支持的最小年份 | int |
| 3 | date | 表示日期的类,常用的属性有year, month, day | type |
| 4 | datetime | 表示日期时间的类,常用的属性有hour, minute, second, microsecond | type |
| 5 | datetime_CAPI | 后面详细描述 | 'PyCapsule' 类 |
| 6 | sys | 各种系统信息 | 'module'类 |
| 7 | time | 表示时间的类 | type |
| 8 | timedelta | 表示时间间隔,即两个时间点的间隔。在日期上做天days,小时hour,分钟,秒,毫秒,微妙的时间计算 | type |
| 9 | timezone | 表示时区的类 | type |
| 10 | tzinfo | 时区的相关信息 | type |
准确地说,datetime模块中常用的类包括date、datetime、time、timedelta、timezone和tzinfo。
其中,date、datetime和time这三个类拥有非常相似的属性和方法。
创建这三个类的示例代码如下:
import datetime
date_sample=datetime.date(2021,07,20) #年月日
time_sample=datetime.time(12,20,33) #时分秒
datetime_sample=datetime.datetime(2021,7,20,12,20,33)#年月日时分秒下面重点介绍Python datetime模块的具体内容,如下所示:
导包
from datetime import datetime1. 获取当前时间
now = datetime.now()
print(now)
print(type(now))
print(now.year)
print(now.month)
print(now.day)
print(now.hour)
print(now.minute)
print(now.second)
print(now.microsecond)

2. 时间间隔 timedelta
from datetime import timedelta两个datetime对象相减,得到的是一个timedelta对象
# 计算时间间隔
delta1 = datetime(2022, 6, 30, 20) - datetime(2022, 2, 2, 1)
print(delta1)
print(type(delta1))

如图,表示148天零19个小时。
print(datetime(2022, 6, 10) + delta1)

timedelta传入不同数量的参数,表示的含义汇总如下。
第一个参数表示天数,第二个参数表示秒数,第三个参数表示微秒。第四个参数表示毫秒,第五个参数表示分钟,第六个参数表示小时。
print(timedelta(10))
print(timedelta(10,11))
print(timedelta(10, 11, 12))
print(timedelta(10, 11, 12, 13))
print(timedelta(10, 11, 12, 13, 14))
print(timedelta(10, 11, 12, 13, 14, 15))

3. datetime 转 字符串 strftime()
stamp = datetime(2022, 6, 22)
# 强制转换字符串
print(str(stamp))
# 格式化 转换 字符串
print(stamp.strftime("%Y/%m/%d %H:%M:%S"))
print(stamp.strftime("%Y-%m-%d %H:%M:%S"))
print(stamp.strftime("%Y/%m/%d"))
print(stamp.strftime("%Y-%m-%d"))

4. 字符串 转 datetime对象 datetime.strptime()
dates = ['1/6/2022', '6/1/2022']
datelist = [datetime.strptime(i, "%m/%d/%Y") for i in dates]
print(datelist)

5. parse() 解析字符串日期
将字符串形式的日期解析成datetime对象。字符串写法可以有很多,如下示例。
from dateutil.parser import parse
print(parse('1/6/2022'))
print(parse('2022-6-2'))
print(parse('2022.6.3'))
print(parse('2022 6 4'))
print(parse('2022, 6, 5'))

到此这篇关于python datetime模块的文章就介绍到这了,更多相关python datetime模块内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









