Python日期处理详解:格式化、比较与timedelta运算

洛溪
洛溪
发布时间:2026-10-13| 3人浏览过
原创

本文详解Python中datetime模块的日期处理功能,涵盖strftime与strptime实现日期字符串互转,以及利用timedelta类进行时间间隔计算、日期加减运算和天数差值获取,提供完整代码示例与参数说明。

本文通过具体示例介绍Python中日期加减及格式化操作的方法,旨在分享实用技巧并作为个人技术笔记留存。

1. 日期输出格式化

所有涉及日期与时间的API均包含在Python的datetime模块中。

1. 将datetime对象转换为字符串

now = datetime.datetime.now()
now.strftime('%Y-%m-%d %H:%M:%S')
#输出2012-03-05 16:26:23.870105

strftime是datetime类实例提供的方法,用于将日期时间对象格式化为字符串。

2. 将字符串转换为datetime对象

t_str = '2012-03-05 16:26:23'
d = datetime.datetime.strptime(t_str, '%Y-%m-%d %H:%M:%S')

strptime是datetime类的静态方法,用于将格式化的字符串解析为日期时间对象。

2. 日期比较操作

datetime模块中定义了timedelta类,该类实例用于表示两个日期或时间点之间的时间间隔。

构造方法如下:

复制代码 代码如下:

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)。所有参数均具有默认值0,接受int或float类型的正负数值。

可通过访问timedelta.days、timedelta.seconds等属性来获取对应的时间分量值。

timedelta类的实例支持加法、减法、乘法和除法运算,运算结果仍为timedelta类实例。例如:

year = timedelta(days=365)
ten_years = year *10
nine_years = ten_years - year

同时,date、time和datetime类也支持与timedelta进行加法和减法运算。

datetime1 = datetime2 +/- timedelta
timedelta = datetime1 - datetime2

这种机制使得许多时间相关的功能实现变得非常便捷。

1. 计算两个日期相差的天数。

d1 = datetime.datetime.strptime('2012-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime('2012-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')
delta = d1 - d2
print delta.days

输出结果:3

2. 计算今天起n天后的日期。

now = datetime.datetime.now()
delta = datetime.timedelta(days=3)
n_days = now + delta
print n_days.strftime('%Y-%m-%d %H:%M:%S')

输出结果:2012-03-08 17:44:50

#coding=utf-8
import datetime
now=datetime.datetime.now()
print now
#将日期转化为字符串 datetime => string
print now.strftime('%Y-%m-%d %H:%M:%S')

t_str = '2012-03-05 16:26:23'
#将字符串转换为日期 string => datetime
d=datetime.datetime.strptime(t_str,'%Y-%m-%d %H:%M:%S')
print d

#在datetime模块中有timedelta类,这个类的对象用于表示一个时间间隔,比如两个日#期或者时间的差别。

#计算两个日期的间隔
d1 = datetime.datetime.strptime('2012-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime('2012-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')
delta = d1 - d2
print delta.days
print delta

#今天的n天后的日期。
now=datetime.datetime.now()
delta=datetime.timedelta(days=3)
n_days=now+delta
print n_days.strftime('%Y-%m-%d %H:%M:%S')

以上就是本文的全部内容,希望这些示例能对读者的学习有所帮助,同时也欢迎大家继续支持本站。

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

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 算法库。