[python] 파이썬에서 현재 시간을 얻는 방법

현재 시간을 얻는 데 사용되는 모듈 / 방법은 무엇입니까?



답변

사용하다:

>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2009, 1, 6, 15, 8, 24, 78915)

>>> print(datetime.datetime.now())
2009-01-06 15:08:24.789150

그리고 단지 시간 :

>>> datetime.datetime.now().time()
datetime.time(15, 8, 24, 78915)

>>> print(datetime.datetime.now().time())
15:08:24.789150

자세한 내용 은 설명서 를 참조하십시오.

입력을 저장하기 위해 모듈 에서 datetime객체를 가져올 수 있습니다 datetime.

>>> from datetime import datetime

그런 다음 datetime.위의 모든 항목 에서 행간 을 제거하십시오 .


답변

당신은 사용할 수 있습니다 time.strftime():

>>> from time import gmtime, strftime
>>> strftime("%Y-%m-%d %H:%M:%S", gmtime())
'2009-01-05 22:14:39'


답변

from datetime import datetime
datetime.now().strftime('%Y-%m-%d %H:%M:%S')

이 예제의 경우 출력은 다음과 같습니다. '2013-09-18 11:16:32'

strftime지시문 목록은 다음과 같습니다 .


답변

유사 할리의 대답 하지만, 사용 str()빠른 앤 더러운에 대한 기능을 조금 더 사람이 읽을 수있는 형식 :

>>> from datetime import datetime
>>> str(datetime.now())
'2011-05-03 17:45:35.177000'


답변

파이썬에서 현재 시간을 어떻게 알 수 있습니까?

time모듈

time모듈은 다른 유틸리티뿐만 아니라 “신기원 이후의 시간”으로 시간을 알려주는 기능을 제공합니다.

import time

유닉스 시대

데이터베이스에 저장하기 위해 타임 스탬프를 가져와야하는 형식입니다. 정수로 변환 할 수있는 간단한 부동 소수점 숫자입니다. 1970 년 1 월 1 일 00:00:00 이후의 초 수를 나타내므로 초 단위로 산술에 유용하며, 다음에 살펴볼 다른 시간 표현에 비해 메모리 라이트입니다.

>>> time.time()
1424233311.771502

이 타임 스탬프는 윤초를 설명하지 않으므로 선형이 아닙니다. 윤초는 무시됩니다. 따라서 국제 UTC 표준과 동일하지는 않지만 표준에 가깝기 때문에 대부분의 레코드 관리에 적합합니다.

그러나 이것은 사람 스케줄링에는 이상적이지 않습니다. 특정 시점에서 진행하려는 미래의 이벤트가있는 경우 날짜 시간 오브젝트 또는 직렬화 된 날짜 시간 오브젝트로 구문 분석 할 수있는 문자열로 해당 시간을 저장하려고합니다 (이에 대해서는 나중에 설명 함).

time.ctime

운영 체제에서 선호하는 방식으로 현재 시간을 나타낼 수도 있습니다 (즉, 시스템 환경 설정을 변경할 때 시간이 변경 될 수 있으므로 다른 시스템에서 예상 한대로 모든 시스템에서 표준으로 사용하지 마십시오) . 이것은 일반적으로 사용자에게 친숙하지만 일반적으로 시간순으로 정렬 할 수있는 문자열이 아닙니다.

>>> time.ctime()
'Tue Feb 17 23:21:56 2015'

타임 스탬프를 사람이 읽을 수있는 형태로 수화 할 수도 ctime있습니다.

>>> time.ctime(1424233311.771502)
'Tue Feb 17 23:21:51 2015'

이 변환은 또한 기록 보관에 좋지 않습니다 (인간에 의해서만 구문 분석되는 텍스트는 제외하고 광학 문자 인식 및 인공 지능이 향상됨에 따라 이러한 사례의 수가 줄어들 것으로 생각합니다).

datetime 구성 단위

datetime모듈은 여기서도 매우 유용합니다.

>>> import datetime

datetime.datetime.now

datetime.now현재 시간을 반환하는 클래스의 방법이다. 그것은을 사용 time.localtime시간대 정보없이 (제공하지 않을 경우, 아래에서 달리 시간대 인식 참조). 쉘에 반영된 표현 (동등한 오브젝트를 재 작성할 수 있음)을 갖지만 인쇄 (또는로 강제) 할 때 str사람이 읽을 수있는 (그리고 거의 ISO) 형식이며 사전 편찬은 시간순으로 정렬 :

>>> datetime.datetime.now()
datetime.datetime(2015, 2, 17, 23, 43, 49, 94252)
>>> print(datetime.datetime.now())
2015-02-17 23:43:51.782461

날짜 시간 utcnow

다음을 수행하여 글로벌 표준 인 UTC 시간으로 datetime 객체를 얻을 수 있습니다.

>>> datetime.datetime.utcnow()
datetime.datetime(2015, 2, 18, 4, 53, 28, 394163)
>>> print(datetime.datetime.utcnow())
2015-02-18 04:53:31.783988

UTC는 GMT 시간대와 거의 동일한 시간 표준입니다. GMT와 UTC는 일광 절약 시간 제로 변경되지 않지만 사용자는 여름 동안 영국 서머 타임과 같은 다른 시간대로 전환 할 수 있습니다.

날짜 / 시간대 인식

그러나 지금까지 생성 한 datetime 객체는 다양한 시간대로 쉽게 변환 할 수 없습니다. 우리는 pytz모듈로 그 문제를 해결할 수 있습니다 :

>>> import pytz
>>> then = datetime.datetime.now(pytz.utc)
>>> then
datetime.datetime(2015, 2, 18, 4, 55, 58, 753949, tzinfo=<UTC>)

마찬가지로 Python 3 timezone에는 utc timezone인스턴스가 첨부 된 클래스 가있어 객체 ​​시간대를 인식 할 수 있습니다 (그러나 편리한 pytz모듈 없이 다른 시간대로 변환 하는 것은 독자에게 연습으로 남습니다).

>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2015, 2, 18, 22, 31, 56, 564191, tzinfo=datetime.timezone.utc)

그리고 원래 utc 객체에서 시간대로 쉽게 변환 할 수 있습니다.

>>> print(then)
2015-02-18 04:55:58.753949+00:00
>>> print(then.astimezone(pytz.timezone('US/Eastern')))
2015-02-17 23:55:58.753949-05:00

pytz시간대 localize메소드를 사용하거나 tzinfo 속성을 ( replace맹목적으로 수행)으로 바꾸면 순진한 datetime 객체를 인식 할 수 있지만 다음은 모범 사례보다 최후의 수단입니다.

>>> pytz.utc.localize(datetime.datetime.utcnow())
datetime.datetime(2015, 2, 18, 6, 6, 29, 32285, tzinfo=<UTC>)
>>> datetime.datetime.utcnow().replace(tzinfo=pytz.utc)
datetime.datetime(2015, 2, 18, 6, 9, 30, 728550, tzinfo=<UTC>)

pytz모듈을 사용하면 datetime객체의 시간대를 인식하고 pytz모듈 에서 사용 가능한 수백 개의 시간대로 시간을 변환 할 수 있습니다 .

UTC 시간 동안이 객체를 표면에 직렬화 하여 데이터베이스에 저장할 는 있지만 Unix Epoch 시간을 저장하는 것보다 훨씬 많은 메모리가 필요하고 오류가 발생하기 쉽습니다.

시간을 보는 다른 방법은 특히 다른 시간대에서 온 데이터를 처리 할 때 오류가 발생하기 쉽습니다. 문자열 또는 직렬화 된 날짜 / 시간 객체의 시간대에 대해 혼동하지 않기를 원합니다.

사용자를 위해 Python으로 시간을 표시하는 경우 ctime테이블 (일반적으로 잘 정렬되지 않음)이 아니라 시계에서 잘 작동합니다. 그러나 개인적으로 파이썬에서 시간을 다룰 때 Unix 시간 또는 시간대 인식 UTC datetime객체 를 사용하는 것이 좋습니다 .


답변

하다

from time import time

t = time()
  • t -시간 간격 측정에 적합합니다.

Unix와 Windows 플랫폼에는 약간의 차이가 있습니다.


답변

>>> from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %X +0000", gmtime())
'Tue, 06 Jan 2009 04:54:56 +0000'

지정된 형식으로 현재 GMT를 출력합니다. 또한이 localtime()방법은.

페이지 에 자세한 내용이 있습니다.