【发布时间】:2021-11-14 19:05:43
【问题描述】:
我得到一个字符串格式的日期“12-31-2020”,我需要减去 3 天,但我还需要字符串格式的输出“12-28-2020”。我想我需要先将其转换为日期格式才能进行减法。你能帮我我应该使用什么功能。提前致谢!
【问题讨论】:
-
到目前为止你尝试了什么?
我得到一个字符串格式的日期“12-31-2020”,我需要减去 3 天,但我还需要字符串格式的输出“12-28-2020”。我想我需要先将其转换为日期格式才能进行减法。你能帮我我应该使用什么功能。提前致谢!
【问题讨论】:
以下是仅使用包含标准库的datetime 模块的方法。代码首先将字符串转换为 datetime.datetime 对象,从中减去 3 天的 timedelta,最后以相同的格式打印出结果。
from datetime import datetime, timedelta
date_string = '31-12-2020'
date = datetime.strptime(date_string, '%d-%m-%Y') - timedelta(days=3)
print(date.strftime('%d-%m-%Y')) # -> 28-12-2020
【讨论】:
使用来自 python 的非常强大的 dateutil 库。你几乎可以用它来做任何有趣的事情。
from dateutil import parser, relativedelta
date_string = '31-12-2020'
print((parser.parse(date_string) - relativedelta.relativedelta(days=3)).strftime('%m-%d-%Y'))
【讨论】: