【问题标题】:Python - Subtract a month from a text stringPython - 从文本字符串中减去一个月
【发布时间】:2019-11-22 12:39:06
【问题描述】:

我有一个这样的变量。

t = 20191201.txt

我想把这个改成 20191101

我在这里所做的是替换 .txt,然后从日期中减去一个月。

如何使用 Python 做到这一点。

【问题讨论】:

标签: python-3.x


【解决方案1】:

这应该可以工作

from datetime import datetime
from dateutil.relativedelta import relativedelta

s = "20191201.txt"
s = s.replace(".txt", "")
date = datetime(year=int(s[0:4]), month=int(s[4:6]), day=int(s[6:8]))
date -= relativedelta(months=1)
result = date.strftime("%Y%m%d")
print(result)
# 20191101

【讨论】:

  • 试过了,它说 -- TypeError: 'month' is an invalid keyword argument for __new__()
  • @mms 再次修复它。
【解决方案2】:

几乎和yxor一样的答案:

from datetime import datetime, timedelta
t = '20191201.txt'
d = datetime.strptime(t[:8], "%Y%m%d")
d2 = d - timedelta(365/12)
print d2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 2016-07-10
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多