1 datetime 简单介绍
datetime 库是Python的标准库之一,它提供了多个类和方法,用于处理日期和时间相关的操作. datetime 库中的主要类包括 date、time、 datetime、timedelta . 这些类可以帮助你处理日期和时间的组合、单独的日期、单独的时间以及时间间隔. strftime 和 strptime 方法可以将时间在日期时间对象和字符串之间转换.
2 datetime 安装
首先检查是否已安装 datetime 库,在终端输入:
pip show datetime
若显示WARNING: Package(s) not found: datetime ,则输入如下命令安装:
pip install datetime
若显示 datetime 库的版本信息,则说明已安装.
3 基本用法
3.1 date 类
date 类可以实现创建日期对象,获取当前的日期等功能,例如:
import datetime
# 创建一个日期对象
my_date = datetime.date(2024, 4, 28)
print(my_date) # 输出:2024-04-28
# 获取当前日期
current_date = datetime.date.today()
print(current_date) # 输出:当前日期
对于日期,还可以把日期中的年份,月份,日单独取出,例如:
import datetime
# 获取当前年份
current_year = datetime.date.today().year
print(current_year) # 输出:当前年份
# 获取当前月份
current_month = datetime.date.today().month
print(current_month) # 输出:当前月份
# 获取当前日期的日
current_day = datetime.date.today().day
print(current_day) # 输出:当前日期的日
3.2 time 类
time 类可以实现创建时间对象,获取当前的时间等功能,例如:
import datetime
# 创建一个时间对象
my_time = datetime.time(14, 55, 41)
print(my_time) # 输出:15:00:00
# 获取当前时间(time部分)
current_time = datetime.datetime.now().time()
print(current_time) # 输出:当前时间(显示微秒)
current_time = datetime.datetime.now().time().replace(microsecond=0)
print(current_time) # 输出:当前时间(不显示微秒)
同样地,可以把时间中的时,分,秒和微秒单独取出,例如:
import datetime
# 获取当前时间的时(time部分)
current_hour = datetime.datetime.now().time().hour
print(current_hour) # 输出:当前时间的时
# 获取当前时间的分(time部分)
current_minute = datetime.datetime.now().time().minute
print(current_minute) # 输出:当前时间的分
# 获取当前时间的秒(time部分)
current_second = datetime.datetime.now().time().second
print(current_second) # 输出:当前时间的秒
# 获取当前时间的微秒(time部分)
current_microsecond = datetime.datetime.now().time().microsecond
print(current_microsecond) # 输出:当前时间的微秒
3.3 datetime类
与 date 类和 time 类相似,创建一个包含日期和时间的对象,例如:
import datetime
# 创建一个日期时间对象
my_datetime = datetime.datetime(2024, 4, 28, 15, 00, 00)
print(my_datetime) # 输出:2024-04-28 15:00:00
# 获取当前日期和时间
current_datetime = datetime.datetime.now()
print(current_datetime) # 输出:当前日期和时间
4 高级用法
4.1 timedelta 类
timedelta 添加一个时间差,例如:
import datetime
# 计算两个日期之间的差值
date1 = datetime.date(2024, 5, 1) + datetime.timedelta(days=1)
print(date1) # 输出:2024-05-02
4.2 strftime 和 strptime 方法
· strftime 方法可以将日期时间对象格式化为字符串.
· strptime 方法可以将字符串解析为日期时间对象.
例如:
import datetime
# 创建一个日期时间对象
my_datetime = datetime.datetime(2024, 4, 28, 15, 00, 00)
# 使用strftime将日期时间对象格式化为字符串
formatted_date = my_datetime.strftime('%Y-%m-%d %H:%M:%S')
print(formatted_date) # 输出:2024-04-28 15:00:00
# 使用strptime将字符串解析为日期时间对象
parsed_datetime = datetime.datetime.strptime('2024-04-28 15:00:00', '%Y-%m-%d %H:%M:%S')
print(parsed_datetime) # 输出:2024-04-28 15:00:00
4.3 两个日期时间对象进行大小的比较
两个 datetime 对象来确定它们之间的顺序关系,例如:
import datetime
# 比较两个日期的顺序关系
print(datetime.date(2024, 5, 1) > datetime.date(2024, 4, 28))
# 输出:True
4.4 计算两个时间的时间差
可以通过两个日期时间对象相减得到时间差,例如:
import datetime
# 计算两个日期之间的差值
delta = datetime.date(2024, 5, 1) - datetime.date(2024, 4, 28)
print(delta) # 输出:3 days, 0:00:00
4.5 制作一个简单的计时器
datetime 类可以临时记录代码的运行时间,例如:
import datetime
# 记录开始时间
start = datetime.datetime.now().replace(microsecond=0)
print(start)
# 执行你的函数
# ...
# 记录结束时间
end = datetime.datetime.now().replace(microsecond=0)
print(end)
#计算时间差
print(start - end)
5 注
· 当使用 strftime 方法格式化日期和时间时,格式字符串的大小写是有意义的,例如%Y
代表四位数的年份,而%y
代表两位数的年份.
· 从Python 3.7开始,datetime 对象支持纳秒级别的精度. 如果代码需要在不同的Python版本之间兼容,并且使用了纳秒级别的精度,则需要对代码做适当的调整.
· 在复现本文的代码时,如果遇到问题,欢迎私信或评论区联系作者.