파이썬 "2021-06-14T15:00:00.000Z" 형태 질문

조회수 799회

제가 response로 받는 날짜형태는 "2021-06-15" 이런 형태인데요

받은 날짜를 다시 요청으로 넣어줘야하는데 그떄 형식이

"2021-06-14T15:00:00.000Z" 이런식으로 바꿔서 넣야하더라구요 (UTC 때문에 9시간 차이가 나서 저시간이 나옵니다)

야매로 일단위인 15에서 1을빼서 14를 "2021-06-14T15:00:00.000Z" 이형식 일단위에 넣어주려다가

뭔가 다른 방법이 있을거같아서 질문드립니다.

검색을 해봐도 "2021-06-14T15:00:00.000Z" 이형태를 "2021-06-14" 이렇게 바꾸는것만 나오고

거꾸로 하는방법을 못찾겠네요...

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    ref :

    >>> d = datetime.datetime.fromisoformat("2021-06-15")
    >>> d
    datetime.datetime(2021, 6, 15, 0, 0)
    >>> d.astimezone(datetime.timezone.utc)
    datetime.datetime(2021, 6, 14, 15, 0, tzinfo=datetime.timezone.utc)
    >>> d.isoformat(timespec="milliseconds")
    '2021-06-15T00:00:00.000'
    
    >>> d = d.astimezone(datetime.timezone.utc)
    >>> d
    datetime.datetime(2021, 6, 14, 15, 0, tzinfo=datetime.timezone.utc)
    >>> d.isoformat(timespec="milliseconds")
    '2021-06-14T15:00:00.000+00:00'
    >>> d.isoformat(timespec="milliseconds").replace("+00:00", "Z")
    '2021-06-14T15:00:00.000Z'
    >>> 
    >>> def localYmd_to_isoformat_js(date_string: str):
        return (
            datetime.datetime.fromisoformat(date_string)
            .astimezone(datetime.timezone.utc)
            .isoformat(timespec="milliseconds")
            .replace("+00:00", "Z")
        )
    
    >>> localYmd_to_isoformat_js("2021-06-15")
    '2021-06-14T15:00:00.000Z'
    
    • 좀 무식하게 문자열을 조작하면 이렇게 할 수 있겠죠. (시간 부분은 고정되어 있으니까...)
    >>> import datetime
    >>> 
    >>> (datetime.date.fromisoformat("2021-06-01") - datetime.timedelta(days=1)).strftime("%Y-%m-%d")
    '2021-05-31'
    >>> (datetime.date.fromisoformat("2021-06-01") - datetime.timedelta(days=1)).strftime("%Y-%m-%d") + "T15:00:00.000Z"
    '2021-05-31T15:00:00.000Z'
    
    • 시간 모듈은 어렵군요 감사합니다! nyw123 2021.6.29 08:56

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)