Как изменить дату экземпляра времени с помощью 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'
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 для изменения времени.
Вы можете использовать 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
Or regexp:
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