Python datetime 实现日期加减与格式化详解

Nora
Nora
发布时间:2026-10-13| 5人浏览过
原创

本文详解 Python datetime 模块的日期处理功能,包括获取当前时间、格式化输出以及利用 timedelta 实现加一天、减一天、加减小时分钟等操作。同时介绍计算时间差的方法,并补充通过 toordinal 和 fromordinal 获取昨天、明天日期的替代方案,帮助开发者高效处理时间数据。

Python datetime 日期加减与格式化基础

在 Python 中,使用 datetime 模块可以轻松实现日期的增加或减少操作,例如加一天、减一天,或者调整小时和分钟数。

要获取当前的日期和时间,可以直接调用 datetime 模块中的相关方法。


import datetime
print datetime.datetime.now()
# 2018-05-08 16:53:30.101000

获取当前时间后,通常需要对时间格式进行转换,以便符合特定的展示或存储需求。


import datetime
print datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
# 2018-05-08 16:54

若需将当前日期增加一天,可以通过 datetime 模块结合 timedelta 类来实现。


import datetime
print (datetime.datetime.now()+datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S")
# 2018-05-09 16:56:07

相反,若需将当前日期减少一天,同样利用 timedelta 类进行计算即可。


import datetime
print (datetime.datetime.now()+datetime.timedelta(days=-1)).strftime("%Y-%m-%d %H:%M:%S")
# 2018-05-07 16:56:59

除了 days 参数,timedelta 还支持 hours 和 minutes 参数,从而允许用户提前或延后指定的小时数或分钟数。

计算两个时间点之间的时间差,可以通过 datetime 对象相减得到,并提取天数、总秒数等详细信息。


import time
import datetime
 
start = datetime.datetime.now()
time.sleep(30)
end = datetime.datetime.now()
 
print (end-start).days # 0 天数
print (end-start).total_seconds() # 30.029522 精确秒数
print (end-start).seconds # 30 秒数
print (end-start).microseconds # 29522 毫秒数

获取昨天和明天日期的替代方法

除了使用 timedelta,Python 还提供了另一种获取昨天和明天日期的方法,虽然代码略显繁琐,但逻辑清晰。

首先,导入 datetime 模块并获取今天的日期对象。

import datetime

today = datetime.date.today()

接着,通过从今天的日期中减去一个 timedelta 对象(天数为 1),即可得到昨天的日期。

yesterday = today - datetime.timedelta(days=1)

同理,将今天的日期加上一个 timedelta 对象(天数为 1),即可得到明天的日期。

tomorrow = today + datetime.timedelta(days=1)

上述方法是大多数教程中推荐的常规做法,简单且直观。

此外,还有一种方法看似较为笨拙,但利用了 toordinal() 和 fromordinal() 函数,前者返回自公元元年 1 月 1 日以来的天数,后者则根据天数还原为日期对象。

yesterday = datetime.date.fromordinal(today.toordinal() - 1)

tomorrow = datetime.date.fromordinal(today.toordinal() + 1)

以上介绍了 Python datetime 模块在日期格式化及昨天、明天计算方面的多种实现方式,希望对读者有所帮助。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。