gpt4 book ai didi

Python - 以 YYYY-MM-DD 格式获取昨天的日期作为字符串

转载 作者:IT老高 更新时间:2023-10-28 22:20:24 27 4
gpt4 key购买 nike

作为 API 请求的输入,我需要以 YYYY-MM-DD 格式的字符串形式获取昨天的日期。我有一个工作版本:

yesterday = datetime.date.fromordinal(datetime.date.today().toordinal()-1)
report_date = str(yesterday.year) + \
('-' if len(str(yesterday.month)) == 2 else '-0') + str(yesterday.month) + \
('-' if len(str(yesterday.day)) == 2 else '-0') + str(yesterday.day)

必须有一种更优雅的方式来做到这一点,对教育目的和其他任何事情一样感兴趣!

最佳答案

您只需从今天的日期中减去一天。在 Python 中,datetime.timedelta 对象允许您创建特定的时间跨度为 timedelta object .

datetime.timedelta(1) 为您提供“一天”的持续时间,并且可以从 datetime 对象中减去。减去对象后,您可以使用 datetime.strftime为了根据您的 format of choice 将结果(日期对象)转换为字符串格式:

>>> from datetime import datetime, timedelta
>>> yesterday = datetime.now() - timedelta(1)

>>> type(yesterday)
>>> datetime.datetime

>>> datetime.strftime(yesterday, '%Y-%m-%d')
'2015-05-26'

注意,除了调用datetime.strftime函数,也可以直接使用datetime对象的strftime方法:

>>> (datetime.now() - timedelta(1)).strftime('%Y-%m-%d')
'2015-05-26'

作为一个函数:

from datetime import datetime, timedelta


def yesterday(frmt='%Y-%m-%d', string=True):
yesterday = datetime.now() - timedelta(1)
if string:
return yesterday.strftime(frmt)
return yesterday

示例:

In [10]: yesterday()
Out[10]: '2022-05-13'

In [11]: yesterday(string=False)
Out[11]: datetime.datetime(2022, 5, 13, 12, 34, 31, 701270)

关于Python - 以 YYYY-MM-DD 格式获取昨天的日期作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30483977/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com