답변:
사용하다:
>>> 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.
위의 모든 항목 에서 행간 을 제거하십시오 .
datetime.datetime.now()
Python 2.7 대화 형 콘솔에 입력하면 (IronPython이 아직 업데이트되지 않았습니다) print()
답변에서 사용하는 최신 예제와 동일한 동작을 제공합니다 . 원래 답변이 보여주는 것을 성공적으로 복제하지 못했습니다 (datetime.datetime (2009, 1, 6, 15, 8, 24, 78915)). (정말 원하는 것은 아니지만 print () 동작을 선호하지만 궁금합니다.)
datetime.now()
스스로 타이핑 할 때 그것은 당신의 답변이 보여준 것과 동일하게 출력됩니다 print(datetime.now())
...
당신은 사용할 수 있습니다 time.strftime()
:
>>> from time import gmtime, strftime
>>> strftime("%Y-%m-%d %H:%M:%S", gmtime())
'2009-01-05 22:14:39'
time
모듈과 모듈 을 사용해야 datetime
합니까?
localtime()
대신 함수 를 사용하십시오 gmtime()
.
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()
방법은.
이 페이지 에 자세한 내용이 있습니다.
이전 답변은 모두 좋은 제안이지만 사용하기가 가장 쉽습니다 ctime()
.
In [2]: from time import ctime
In [3]: ctime()
Out[3]: 'Thu Oct 31 11:40:53 2013'
이것은 현재 현지 시간의 형식이 잘 지정된 문자열 표현을 제공합니다.
미국 해군 의 공식 계시 원인 미 해군 관측소에 물어보십시오 .
import requests
from lxml import html
page = requests.get('http://tycho.usno.navy.mil/cgi-bin/timer.pl')
tree = html.fromstring(page.content)
print(tree.xpath('//html//body//h3//pre/text()')[1])
DC 지역에 살고 있다면 (나 같은) 지연 시간이 너무 나쁘지 않을 수 있습니다.
팬더 를 사용 하여 현재 시간을 가져 와서 당면한 문제 를 극복하십시오.
import pandas as pd
print(pd.datetime.now())
print(pd.datetime.now().date())
print(pd.datetime.now().year)
print(pd.datetime.now().month)
print(pd.datetime.now().day)
print(pd.datetime.now().hour)
print(pd.datetime.now().minute)
print(pd.datetime.now().second)
print(pd.datetime.now().microsecond)
산출:
2017-09-22 12:44:56.092642
2017-09-22
2017
9
22
12
44
56
92693
이것이 내가 끝내는 것입니다.
>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")
01/09/2015 13:11
또한이 표는 원하는 형식으로 날짜를 가져 오기 위해 적절한 형식 코드를 선택하는 데 필요한 참조 자료입니다 (Python "datetime"documentation here ).
strftime(time_format)
현재 현지 시간을 지정된에 해당하는 문자열로 반환합니다 time_format
. 참고 : time.strftime()
및 datetime.strftime()
예를 들어 서로 다른 지침 세트를 지원, %z
지원하지 않습니다 time.strftime()
파이썬 2 .
time
모듈 함수는 해당 C 함수 주위의 얇은 래퍼입니다. datetime
높은 수준이며 일반적으로 더 휴대하기 쉽습니다.
datetime.now()
현재 시간을 현지 시간대의 시간을 나타내는 순진한 datetime 객체로 반환합니다. 그 값은 예를 들어 DST 전환 중에 모호 할 수 있습니다 ( "폴백"). 모호성을 피하려면 UTC 시간대를 사용해야합니다.
from datetime import datetime
utc_time = datetime.utcnow()
print(utc_time) # -> 2014-12-22 22:48:59.916417
또는 해당 시간대 정보가 첨부 된 시간대 인식 객체 (Python 3.2 이상) :
from datetime import datetime, timezone
now = datetime.now(timezone.utc).astimezone()
print(now) # -> 2014-12-23 01:49:25.837541+03:00
import datetime
date_time = datetime.datetime.now()
date = date_time.date() # Gives the date
time = date_time.time() # Gives the time
print date.year, date.month, date.day
print time.hour, time.minute, time.second, time.microsecond
수행 dir(date)
하거나 패키지를 포함한 모든 변수. 변수와 관련된 모든 속성과 메소드를 얻을 수 있습니다.
import datetime
그때는 datetime.datetime.now()
\ n 만약 from datetime import datetime
그렇다면 인datetime.now()
>>> import datetime, time
>>> time = time.strftime("%H:%M:%S:%MS", time.localtime())
>>> print time
'00:21:38:20S'
이 질문은 단지 그것을 위해 새로운 대답이 필요하지 않습니다 ... 반짝이는 새 장난감 / 모듈이지만 충분합니다. 그것은 진자 라이브러리 인데, 화살표가있는 고유의 결함과 버그가 없다면 화살표가 시도한 것들을하는 것처럼 보입니다.
예를 들어, 원래 질문에 대한 답변은 다음과 같습니다.
>>> import pendulum
>>> print(pendulum.now())
2018-08-14T05:29:28.315802+10:00
>>> print(pendulum.now('utc'))
2018-08-13T19:29:35.051023+00:00
여러 RFC 및 ISO를 포함하여 처리해야 할 표준이 많이 있습니다. 그들을 섞어 놓으십시오. 걱정하지 말고 조금 살펴보십시오. dir(pendulum.constants)
RFC 및 ISO 형식보다 조금 더 있습니다.
우리가 현지인이라고 할 때, 우리는 무엇을 의미합니까? 글쎄요.
>>> print(pendulum.now().timezone_name)
Australia/Melbourne
>>>
아마 당신의 나머지 대부분은 다른 곳을 의미합니다.
그리고 그것에 간다. 간단히 말해 : 진자는 요청이 HTTP에 대해 한 날짜와 시간에 시도합니다. 특히 사용 편의성과 광범위한 문서화를 위해 고려할 가치가 있습니다.
시간대의 현재 시간
from datetime import datetime
import pytz
tz_NY = pytz.timezone('America/New_York')
datetime_NY = datetime.now(tz_NY)
print("NY time:", datetime_NY.strftime("%H:%M:%S"))
tz_London = pytz.timezone('Europe/London')
datetime_London = datetime.now(tz_London)
print("London time:", datetime_London.strftime("%H:%M:%S"))
tz_India = pytz.timezone('Asia/India')
datetime_India = datetime.now(tz_India)
print("India time:", datetime_India.strftime("%H:%M:%S"))
#list timezones
pytz.all_timezones
http://crsmithdev.com/arrow/ 에서 화살표 모듈을 사용해보십시오 .
import arrow
arrow.now()
또는 UTC 버전 :
arrow.utcnow()
출력을 변경하려면 .format ()을 추가하십시오.
arrow.utcnow().format('YYYY-MM-DD HH:mm:ss ZZ')
특정 시간대의 경우 :
arrow.now('US/Pacific')
한 시간 전에:
arrow.utcnow().replace(hours=-1)
또는 요점을 원한다면.
arrow.get('2013-05-11T21:23:58.970460+00:00').humanize()
>>> '2 years ago'
arrow.now('Time/Zone')
(일부 시간대 실패 할 수 있습니다 arrow
사용 dateutil
UTC를 끊었다 -> 로컬 변환 사용 내부에 arrow.now()
참고 :. pytz
그런 문제가 없습니다 또한. 다른 시간대 관련 문제가 있습니다
밀리 초로 시간을 보내고 싶습니다. 그들을 얻는 간단한 방법 :
import time, datetime
print(datetime.datetime.now().time()) # 11:20:08.272239
# Or in a more complicated way
print(datetime.datetime.now().time().isoformat()) # 11:20:08.272239
print(datetime.datetime.now().time().strftime('%H:%M:%S.%f')) # 11:20:08.272239
# But do not use this:
print(time.strftime("%H:%M:%S.%f", time.localtime()), str) # 11:20:08.%f
하지만 밀리 초 만 원해요 ? 그들을 얻는 가장 짧은 방법 :
import time
time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 1000)
# 11:34:23.751
마지막 곱셈에서 0을 추가하거나 제거하여 소수점 수를 조정하거나 다음을 수행하십시오.
def get_time_str(decimal_points=3):
return time.strftime("%H:%M:%S", time.localtime()) + '.%d' % (time.time() % 1 * 10**decimal_points)
이 함수를 사용하여 시간을 얻을 수 있습니다 (불행히도 AM 또는 PM은 표시되지 않음).
def gettime():
from datetime import datetime
return ((str(datetime.now())).split(' ')[1]).split('.')[0]
나중에 병합 할 시간, 분, 초 및 밀리 초를 얻으려면 다음 함수를 사용할 수 있습니다.
시:
def gethour():
from datetime import datetime
return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[0]
분:
def getminute():
from datetime import datetime
return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[1]
둘째:
def getsecond():
from datetime import datetime
return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[2]
밀리 초 :
def getmillisecond():
from datetime import datetime
return (str(datetime.now())).split('.')[1]
다음은 형식을 지정하지 않고 시간을 얻는 데 사용하는 것입니다. 어떤 사람들은 split 방법을 좋아하지 않지만 여기서 유용합니다.
from time import ctime
print ctime().split()[3]
HH : MM : SS 형식으로 인쇄됩니다.
아무도 그것을 언급하지 않았기 때문에 이것이 최근에 발생한 것입니다 ... pytz 시간대의 fromutc () 메소드와 datetime의 utcnow () 메소드가 유용한 현재 시간 (및 날짜)을 얻는 가장 좋은 방법입니다 어떤 시간대에서도.
from datetime import datetime
import pytz
JST = pytz.timezone("Asia/Tokyo")
local_time = JST.fromutc(datetime.utcnow())
당신이 원하는 전부가 시간이라면, 당신은 그걸로 얻을 수 있습니다 local_time.time()
.