【问题标题】:Get previous month date from date stored in string variable从存储在字符串变量中的日期获取上个月的日期
【发布时间】:2021-03-21 17:04:52
【问题描述】:

我正在从文件名中提取日期并将其存储在字符串变量中。假设文件名为 CRM_DATA_PUBLIC_20201120_052035.txt,我提取的日期为 20201120。现在我想从中获取上个月的日期,比如 20201020 或只是 202010。 我尝试使用日期函数,但它给了我错误。

你能帮帮我吗?

感谢期待。

【问题讨论】:

  • 但是如果日期是 e.g. 12 月 31 日还是 3 月 31 日?
  • 还是平年的 3 月 29 日?
  • @idar 解决方案也涵盖了这一点。

标签: python datetime


【解决方案1】:

试试这个:(根据评论更改)

import datetime
from dateutil.relativedelta import relativedelta

filename = 'CRM_DATA_PUBLIC_20201120_052035.txt'
date = filename.split('_')[3]

#If you want the output to include the day of month as well
date = datetime.datetime.strptime(date, '%Y%m%d')

#If you want only the month
date = datetime.datetime.strptime(date, '%Y%m')

date = date - relativedelta(months=1)
date = str(date.date()).replace('-','')

print(date)

输出:

20201020

【讨论】:

  • 要格式化日期字符串,您还可以使用date = datetime.datetime.strftime(date, "%Y%m%d") 并指定格式"%Y%m%d"(带日期)或%Y%m(不带日期)。
【解决方案2】:

您可以在这里找到答案https://stackoverflow.com/a/9725093/10334833 我从您的问题中得到的答案已经在这里得到解答,但如果您仍然感到困惑,请告诉我,我可以帮助您:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 2015-05-11
    相关资源
    最近更新 更多