programing

Python - YYY-MM-DD 형식의 문자열로 어제 날짜 가져오기

minimums 2023. 5. 23. 21:43
반응형

Python - YYY-MM-DD 형식의 문자열로 어제 날짜 가져오기

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)

교육적인 목적을 위해 다른 어떤 것보다 더 우아한 방법이 있을 것입니다!

오늘 날짜에서 하루만 빼면 됩니다.파이썬에서datetime.timedeltaobject를 사용하면 특정 시간 범위를 개체로 생성할 수 있습니다.

datetime.timedelta(1)"1일"의 기간을 제공하고 a에서 뺄 수 있습니다.datetime물건.선택한 형식에 따라 결과(날짜 개체)를 문자열 형식으로 변환하는 데 사용할 수 있는 개체를 뺀 후:

>>> 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함수, 직접 사용할 수도 있습니다.strftime의 방법datetime객체:

>>> (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)

다음을 사용하는 대체 답변today()현재 날짜를 계산하고 다음을 사용하여 하나를 빼는 방법timedelta()나머지 단계는 동일하게 유지됩니다.

https://docs.python.org/3.7/library/datetime.html#timedelta-objects

from datetime import date, timedelta
today = date.today()
yesterday = today - timedelta(days = 1)
print(today)
print(yesterday)

Output: 
2019-06-14
2019-06-13
>>> import datetime
>>> datetime.date.fromordinal(datetime.date.today().toordinal()-1).strftime("%F")
'2015-05-26'

부르기.isoformat()에서date물건이 당신에게 줄 것입니다.YYYY-MM-DD

from datetime import date, timedelta
(date.today() - timedelta(1)).isoformat()

나는 오직 사용하려고 합니다.import datetime 답변을 바탕으로

import datetime

oneday = datetime.timedelta(days=1)
yesterday = datetime.date.today() - oneday

언급URL : https://stackoverflow.com/questions/30483977/python-get-yesterdays-date-as-a-string-in-yyyy-mm-dd-format

반응형