본문 바로가기
Python/Python FAQ

마이크로초 구성 요소 없이 Python datetime을 문자열로 변환, Python datetime to string without microsecond component

by 베타코드 2023. 9. 19.
반응형

질문


Bitbucket API 응답에는 현재 암스테르담 시간 문자열만 포함되어 있습니다. UTC 시간 문자열과 일관성을 유지하기 위해 원하는 형식은 2011-11-03 11:07:04입니다 (뒤에 +00:00이 따라오지만 중요하지 않습니다).

datetime 인스턴스에는 마이크로초 구성 요소가 있는 문자열을 어떻게 생성할 수 있을까요?

>>> import datetime
>>> print unicode(datetime.datetime.now())
2011-11-03 11:13:39.278026

저는 가능한 답안 중에서 가장 좋은 옵션을 추가할 것이지만, 더 우아한 해결책이 있을 수도 있습니다.

편집: 실제로 현재 시간을 인쇄하는 것이 아니라 빠른 예제를 위해 datetime.now를 사용했습니다. 따라서 솔루션은 받은 datetime 인스턴스에 마이크로초 구성 요소가 포함되어 있다고 가정해서는 안 됩니다.


답변


만약 표준 형식과 다른 특정 형식으로 datetime 객체를 포맷팅하려면, 그 형식을 명시적으로 지정하는 것이 가장 좋습니다:

>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'

datetime.strftime()문서에서 % 지시자의 설명을 확인하세요.

Python 3.6부터는 isoformat() 메소드가 이 형식도 생성할 수 있을만큼 유연합니다:

datetime.datetime.now().isoformat(sep=" ", timespec="seconds")
반응형

댓글