如何使用python更改时间实例的日期?



我有一个start_time变量,它存储一个时间字符串。

start_time = '2022-12-21 22:00:00'

现在使用python,我想将开始时间的日期更改为

start_time = '2022-12-28 22:00:00'

我用非常难看的方法完成了这个。请告诉我最简单最好的方法。

我尝试了下面的代码。

#its not string its time instance
replacing_date = 2022-12-28 00:00:00
#converting time into string 
replacing_date = datetime.strptime(replacing_date,'%Y-%m-%d %H:%M:%S')
replacing_date =replacing_date.split(" ")
start_time = start_time.split(" ")
start_time = datetime.strptime(replacing_date[0]+start_time[1],'%Y-%m-%d %H:%M:%S')

基本上我要更改很多地方的日期。在这种情况下,这似乎不是一件好事。如果时间字符串格式改变,它可能会中断。如果年份或月份发生变化,它也会破裂。例如日期更改为。

start_time = '2023-01-01 22:00:00'

您可以使用datetime.replace(..):

from datetime import datetime
start_time = "2022-12-21 22:00:00"
new_time = datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S").replace(day=28)
print(new_time)

输出:

2022-12-28 22:00:00

或正则表达式:

import re
new_time = re.sub(r"d{4}-d{2}-d{2}", "2022-12-28", "2022-12-21 22:00:00", 0)
print(new_time)
输出:

2022-12-28 22:00:00

from datetime import datetime, timedelta
start_time = '2022-12-21 22:00:00'
replacing_date = datetime.strptime(start_time,'%Y-%m-%d %H:%M:%S')
new_time = replacing_date+timedelta(days=7)
print(new_time)

输出:

2022-12-28 22:00:00

使用timedelta来修改时间

最新更新