【问题标题】:python get previous day date in UTC using datetime(datetime.date) and timedeltapython 使用 datetime(datetime.date) 和 timedelta 获取 UTC 中的前一天日期
【发布时间】:2021-04-13 21:44:26
【问题描述】:

我想在 UTC 中获取前一天的日期。

from datetime import datetime, timedelta
month_now = str(datetime.date(datetime.utcnow()))[:-3]
>>> print(month_now)
2021-01

现在

previous_day = str(datetime.date(datetime.utcnow()-datetime.timedelta(days=1)))

AttributeError: type object 'datetime.datetime' 没有属性 'timedelta'

请帮忙。所有相关的帖子都在建议一些类似但需要 datetime.date 的东西

Previous_Date = datetime.datetime.today() - datetime.timedelta(days=1)

【问题讨论】:

    标签: python-3.x datetime timedelta


    【解决方案1】:

    Stop using utcnow and utcfromtimestamp - 使用timezone.utc 来具体说明。

    from datetime import datetime, timedelta, timezone
    
    todayUTC = datetime.now(timezone.utc).date()
    yesterdayUTC = today - timedelta(1)
    
    print(todayUTC, yesterdayUTC)
    # 2021-01-08 2021-01-07
    

    datetimetimedelta 等类也不是来自 datetime 模块的类。如果显式导入它们 (from datetime import ...),则必须相应地使用它们,因此会出现错误。另一种选择是导入模块,这样您就可以调用它的所有类,例如datetime.timedeltadatetime.datetime 等等。 docs。然后,您的原始代码必须看起来像

    import datetime
    
    month_now = str(datetime.datetime.utcnow().date())[:-3]
    previous_day = str((datetime.datetime.utcnow()-datetime.timedelta(days=1)).date())
    print(month_now, previous_day)
    # 2021-01 2021-01-07
    

    【讨论】:

    • 非常感谢!!但仍然无法使用上面提到的其他选项,以为得到了想要的结果,我正在寻找锻炼评论中提到的其他选项
    • @div:我添加了一个例子,也许这有助于澄清。
    猜你喜欢
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 2015-09-27
    • 2019-08-26
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    相关资源
    最近更新 更多