마이크로 초 구성 요소없이 문자열로 파이썬 날짜 시간
현재 암스테르담 (!) 시간 문자열 만 포함하는 Bitbucket API 응답에 UTC 시간 문자열을 추가하고 있습니다. 다른 곳에서 반환되는 UTC 시간 문자열과 일관성을 유지하기 위해 원하는 형식이 2011-11-03 11:07:04
뒤에옵니다 ( +00:00
하지만 그다지 독특하지는 않습니다).
(예 : 문자열을 만들 수있는 가장 좋은 방법은 무엇입니까 없이 A로부터 마이크로 초 구성 요소)를 datetime
예 와 마이크로 초 구성 요소는?
>>> import datetime
>>> print unicode(datetime.datetime.now())
2011-11-03 11:13:39.278026
가능한 답변으로 나에게 발생한 최상의 옵션을 추가하지만 더 우아한 해결책이있을 수 있습니다.
편집 : 현재 시간을 실제로 인쇄하고 있지 않다는 점을 언급해야합니다 datetime.now
. 빠른 예를 들었습니다. 따라서 솔루션은 datetime
수신 하는 인스턴스에 마이크로 초 구성 요소가 포함 된다고 가정해서는 안됩니다 .
datetime
표준 형식과 다른 특정 형식으로 오브젝트 를 형식화 하려면 해당 형식을 명시 적으로 지정하는 것이 가장 좋습니다.
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 18:21:26'
지시문 에 대한 설명은 설명서를datetime.strftime()
참조하십시오 %
.
>>> import datetime
>>> now = datetime.datetime.now()
>>> print unicode(now.replace(microsecond=0))
2011-11-03 11:19:07
파이썬 3.6에서 :
from datetime import datetime
datetime.datetime.now().isoformat(' ', 'seconds')
'2017-01-11 14:41:33'
https://docs.python.org/3.6/library/datetime.html#datetime.datetime.isoformat
이것이 내가하는 방법입니다. ISO 형식 :
import datetime
datetime.datetime.now().replace(microsecond=0).isoformat()
# Returns: '2017-01-23T14:58:07'
ISO 형식을 원하지 않으면 'T'를 바꿀 수 있습니다.
datetime.datetime.now().replace(microsecond=0).isoformat(' ')
# Returns: '2017-01-23 15:05:27'
또 다른 옵션 :
>>> import time
>>> time.strftime("%Y-%m-%d %H:%M:%S")
'2011-11-03 11:31:28'
기본적으로 현지 시간을 사용하므로 UTC가 필요한 경우 다음을 사용할 수 있습니다.
>>> time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
'2011-11-03 18:32:20'
슬라이싱을 통해 원하는 처음 19자를 유지하십시오.
>>> str(datetime.datetime.now())[:19]
'2011-11-03 14:37:50'
모든 datetime.datetime
인스턴스에 마이크로 초 구성 요소가있는 것은 아니므로 (즉, 0 일 때) 문자열을 "."로 분할 할 수 있습니다. 항상 작동하는 첫 번째 항목 만 가져옵니다.
unicode(datetime.datetime.now()).partition('.')[0]
우리는 아래와 같은 것을 시도 할 수 있습니다
import datetime
date_generated = datetime.datetime.now()
date_generated.replace(microsecond=0).isoformat(' ').partition('+')[0]
나는 보통 :
import datetime
now = datetime.datetime.now()
now = now.replace(microsecond=0) # To print now without microsecond.
# To print now:
print(now)
산출:
2019-01-13 14:40:28
나는 이것이 가장 간단한 방법이라는 것을 알았다.
>>> t = datetime.datetime.now()
>>> t
datetime.datetime(2018, 11, 30, 17, 21, 26, 606191)
>>> t = str(t).split('.')
>>> t
['2018-11-30 17:21:26', '606191']
>>> t = t[0]
>>> t
'2018-11-30 17:21:26'
>>>
이것은 내가 이해할 수 있고 더 잘 기억하기 때문에 사용합니다 (날짜 시간 형식도 원하는대로 사용자 정의 할 수 있습니다) :-
import datetime
moment = datetime.datetime.now()
print("{}/{}/{} {}:{}:{}".format(moment.day, moment.month, moment.year,
moment.hour, moment.minute, moment.second))
참고 URL : https://stackoverflow.com/questions/7999935/python-datetime-to-string-without-microsecond-component
'Programming' 카테고리의 다른 글
단위 테스트와 기능 테스트 (0) | 2020.02.26 |
---|---|
Bash에서 배열의 요소를 어떻게 결합 할 수 있습니까? (0) | 2020.02.26 |
문자열에서 모든 줄 바꿈을 제거하는 방법 (0) | 2020.02.26 |
JavaScript의 For..In 루프-키 값 쌍 (0) | 2020.02.26 |
목록에서 max () / min ()을 사용하여 반환 된 최대 또는 최소 항목의 인덱스 가져 오기 (0) | 2020.02.26 |