提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
Python提供了许多内置模块来处理日期和时间相关的功能。其中最常用的有datetime模块、time模块以及calendar模块。
一、datetime
在Python中,有一个内置的时间模块叫做datetime。它提供了处理日期和时间的功能。以下是几个主要的类和函数:
- date :日期
- time :时间
- datetime:日期时间
- timedelta:时间增量
1.date日期
表示日期,下方是几个常用方法
- date.today() :直接获取今天日期
- date(year=2024, month=1, day=10):构造指定日期 { date(年, 月, 日) }
- strftime():将时间元组格式化为指定格式的字符串
格式化中:%y两位年 ; %Y四位年 ; %m两位月 ; %d两位日
- weekday():返回周(星期几)
返回周中需要注意的是:从星期一开始到星期六分别为0 - 6,不要弄错
代码示例如下:
# 导入库/模块
from datetime import date
# 使用数字构造日期
# 直接获取今天日期
date0 = date.today()
# 构造指定日期
# date(年, 月, 日)
date0 = date(2024, 1, 10)
# 另一种写法: date(year=2024, month=1, day=10)
print(type(date0)) # datetime.date
# 取得日期中的每一部分
print(date0.year, date0.month, date0.day)
print(f"{date0.year}--{date0.month}--{date0.day}")
# %y两位年 %Y四位年 %m两位月 %d两位日
print(date0.strftime("%y-%m-%d")) # 24-01-10
print(date0.strftime("%Y-%m-%d")) # 2024-01-10
print(date0.weekday()) # 2 星期一为0,周六为6
2.time时间
用于处理时间的类,包括时、分、秒、微秒。
常用方法:
- time(hour=17, minute=1, second=30):构造指定时间,{ time(时, 分, 秒) }
- strftime():将时间元组格式化为指定格式的字符串
格式化中:%H时 ;%M分 ; %S秒
代码示例如下:
time0 = time(hour=17, minute=1, second=30)
print(type(time0)) # <class 'datetime.time'>
print(time0.hour, time0.minute, time0.second) # 17 1 30
# %H时 %M分钟 %S秒
print(time0.strftime("%H:%M:%S")) # 17:01:30
后续为了方便,将导入模块直接导入完成,省得每次都写٩(◕‿◕。)۶
from datetime import date, time, datetime, timedelta
3.datetime日期时间
用于同时处理日期和时间的类,包括年、月、日、时、分、秒、微秒
常用方法:与date和time的类似,同时还包含其他用法:
- datetime.now():返回当前的日期和时间
- datetime.today():返回当天的日期和时间
代码示例如下:
# 当前时间
datetime0 = datetime.now()
print(datetime0) # 2024-01-10 17:28:23.315895
datetime0 = datetime(year=2024, month=1, day=10, hour=17, minute=22, second=46)
print(type(datetime0))
print(datetime0.year, datetime0.month, datetime0.day, datetime0.hour, datetime0.minute, datetime0.second)
# 结果2024 1 10 17 22 46
print(datetime0.strftime("%Y-%m-%d %H:%M:%S")) # 2024-01-10 17:22:46
4.timedelta时间增量
在Python中,timedelta是一个用来表示时间增量的类。它可以用来操作和计算日期和时间。
timedelta对象可以用来表示一段时间,包括天、小时、分钟、秒等。你可以使用timedelta来将日期和时间增加或减少一定的时间。
代码示例如下:
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 2024-01-11 15:53:11
timedelta0 = timedelta(weeks=1, days=1, seconds=30, hours=2)
print(timedelta0.days, timedelta0.seconds) # 8 7230 8天=1周+1天
future = now +timedelta(weeks=2, hours=2)
print(type(future), future.strftime("%Y-%m-%d %H:%M:%S"))
# <class 'datetime.datetime'> 2024-01-25 17:53:11
future = now - timedelta(hours=8)
print(type(future), future.strftime("%Y-%m-%d %H:%M:%S"))
# <class 'datetime.datetime'> 2024-01-11 07:53:11
二、time时间
在Python中,time模块提供了对时间的访问和处理的功能。它可以用于测量程序运行的时间,以及进行时间的转换、格式化等操作。
time模块是python中内置的模块,不用从其他地方导入==>import time
以下是time模块的一些常用方法和函数:
- time():返回当前时间的秒数,从1970年1月1日0时开始到现在的秒数,又叫时间戳
- sleep():程序阻塞/休眠/等待()秒
- strftime(格式化字符串,(时间元组形式)):格式化字符串
- localtime():获取当前\当地的时间结构体
通过使用time模块,我们可以对时间进行各种操作,如获取当前时间、休眠程序、格式化时间、计算时间差等。这使得处理时间相关的任务变得更加简单和方便
代码示例如下:
# python内置时间模块
import time
time.sleep(3) 程序阻塞/休眠/等待3秒
print(1)
time.sleep(3)
print(2)
time.sleep(3)
print(3)
time.sleep(3)
print(4)
time.sleep(3)
print(5)
time.sleep(3)
# time.time整数部分是从1970-1-1 0时开始计算的秒数
# 名称:时间戳
print(time.time()) # 1704936742.2946222
time.sleep(5)
print(time.time()) # 1704936747.2946222
time.sleep(5)
print(time.time()) # 1704936752.295482
# time.strftime(格式化字符串, (时间元组形式))
print(time.strftime("%Y-%m-%d %H:%M:%S", (2001, 6, 9, 8, 7, 56, 25, 0, 0)))
# 2001-06-09 08:07:56
# 获取当前(本地)时间结构体
print(time.localtime())
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) # 2024-01-11 09:43:54
三、calendar日历
Calend模块提供了一些方便的功能来处理日期和时间。它包含了创建、修改和查询日历事件的方法。
它的导入与time一样 ==> import calendar
常用方法:
- calendar():获取年历
- month():获取月历
- weekday() :返回周几
- isleap():判断是否闰年–True or False
代码示例如下:
import calendar
print(calendar.calendar(2024)) # 2024年整年的年历
print(calendar.month(2024, 1)) # 2024-01月历
print(calendar.weekday(2024, 1, 11)) # 返回周几
print(calendar.isleap(2024)) # 判断是否闰年--True
总结
以上就是今天要讲的内容,本文简单介绍了在python中与日期时间相关模块的使用。