一、需实现的目标
将时间字符串 “2022-03-18 09:00:00” 变为 "2022-03-18 08:59:59 "。
二、实现代码
步骤如下:
- 将字符串转换为时间格式
- 判断时间未位是不是
00
,若为真则使用timedelta
函数,
设置seconds=1
- 最后将减后时间格式转换为字符串,使用
strftime
函数
>>> import datetime
>>> str1 = "2022-03-18 09:00:00"
>>> t=datetime.datetime.strptime(str1,"%Y-%m-%d %H:%M:%S") # 将字符串转换为时间格式
>>> t
datetime.datetime(2022, 3, 18, 9, 0)
>>> if t.strftime('%S')=="00":
t59 = t-datetime.timedelta(hours=0, minutes=0, seconds=1) # 在原有时间上减一秒,也即seconds=1
>>> str2 = t59.strftime('%Y-%m-%d %H:%M:%S') # 再将时间格式转换为字符串
>>> str2
'2022-03-18 08:59:59'
备注:若是在原有时间上增加1秒,直接在datetime.timedelta该步变为加号即可;t+datetime.timedelta(hours=0, minutes=0, seconds=1)