如何将字符串转换为datetime.timedelta()?

9 投票
3 回答
25329 浏览
提问于 2025-04-17 07:35

我该如何把我的日期字符串转换成 Python 中的 datetime.timedelta() 呢?

我有这段代码:

import datetime

date_select = '2011-12-1'
delta = datetime.timedelta(days=1)
target_date = date_select + delta
print target_date

提前谢谢你...

3 个回答

0
from datetime import datetime, timedelta

date_select = '2011-12-1'
new_data = datetime.strptime(date_select, '%Y-%m-%d')
delta = timedelta(days=1)

target_date = date_select + delta
print target_date

你会得到这样的结果:2011-12-02 00:00:00;如果你想去掉后面的 '00:00:00' 只保留日期,只需要在目标日期后面加上 .date()。

print target_date.date()

这样你就只会得到日期 = 2011-12-02

0

你可以用 strptime 来实现这个功能。

from datetime import datetime

target_date = datetime.strptime(date_select, '%Y-%m-%d')
11

你不需要把 date_select 转换成 timedelta,相反,你需要一个 datetime 对象,这样你才能把它和 timedelta 相加,得到一个更新后的 datetime 对象:

from datetime import datetime, timedelta

date_select = datetime.strptime('2011-12-1', '%Y-%m-%d')
delta = timedelta(days=1)
target_date = date_select + delta
print target_date

或者,如果你更喜欢简单一点的写法,不用那些复杂的 from ... import ... 导入语句:

import datetime    # <- LOOK HERE, same as in your example

date_select = datetime.datetime.strptime('2011-12-1', '%Y-%m-%d')
delta = datetime.timedelta(days=1)
target_date = date_select + delta
print target_date

撰写回答