파이썬 "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 답변
-
ref :
- https://stackoverflow.com/a/63894149/100093
- https://docs.python.org/ko/3/library/datetime.html?highlight=isoformat#datetime.datetime.isoformat
>>> 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'
댓글 입력