python - yymmdd - 파이썬 시간 알람




파이썬으로 현재 시간을 얻는 법 (20)

현재 시간을 가져 오는 데 사용되는 모듈 / 메소드는 무엇입니까?


파이썬에서 현재 시간을 얻으려면 어떻게해야합니까?

time 모듈

time 모듈은 다른 유틸리티뿐만 아니라 "초로부터의 초"로 시간을 알려주는 함수를 제공합니다.

import time

유닉스 에포크 시간

이것은 데이터베이스에 저장하기 위해 타임 스탬프를 받아야하는 형식입니다. 정수로 변환 할 수있는 간단한 부동 소수점 숫자입니다. 1970 년 1 월 1 일 00:00:00 이후의 초 수를 나타 내기 때문에 초 단위의 산술 연산에도 좋으며, 다음에 볼 시간의 다른 표현과 비교할 때 메모리 라이트입니다.

>>> time.time()
1424233311.771502

이 타임 스탬프는 윤초를 설명하지 않으므로 선형이 아닙니다. 윤초가 무시됩니다. 따라서 국제 UTC 표준과 동등하지는 않지만, 대부분의 기록 보관에있어 매우 적합합니다.

그러나 이는 인간 스케줄링에 이상적이지 않습니다. 특정 시점에 수행하려는 미래 이벤트가 있으면 datetime 객체 또는 직렬화 된 datetime 객체 (나중에 설명 함)로 파싱 할 수있는 문자열로 해당 시간을 저장해야합니다.

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 는 현재 시간을 반환하는 클래스 메서드입니다. timezone 정보없이 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

datetime의 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 모듈 pytz 문제를 해결할 수 있습니다.

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

마찬가지로, 파이썬 3에서는 timezone 인스턴스가 첨부 된 timezone 클래스가 있습니다.이 클래스는 객체를 시간대를 인식하도록합니다 (그러나 편리한 pytz 모듈이없는 다른 시간대로 변환하는 것은 독자의 연습 과제로 남겨 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 datetime 객체를 pytz timezone localize 메소드로 인식하거나 tzinfo 속성을 대체하여 (대체하여 맹목적으로 수행합니다) 이러한 메소드는 모범 사례보다 더 최후의 수단입니다.

>>> 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 시간을 저장하는 것보다 훨씬 많은 메모리와 오류가 발생하기 쉽습니다.

시간을 보는 다른 방법은 특히 다른 시간대에서 올 수있는 데이터를 처리 할 때 훨씬 오류가 발생하기 쉽습니다. 문자열 또는 직렬화 된 datetime 객체가 의도 한 시간대에 대한 혼란이 없기를 원합니다.

사용자를 위해 파이썬으로 시간을 표시한다면, ctime 은 테이블이 아니라 (보통 잘 정렬되지는 않지만) 시계에서 훌륭하게 작동합니다. 그러나 Python에서 시간을 다룰 때는 유닉스 시간을 사용하거나 시간대를 인식하는 UTC datetime 객체를 사용할 것을 개인적으로 권장합니다.


가장 빠른 방법은

>>> import time
>>> time.strftime("%Y%m%d")
'20130924'

기본적으로 now() 함수는 YYYY-MM-DD HH:MM:SS:MS 형식으로 출력을 반환합니다. 아래 샘플 스크립트를 사용하여 Python 스크립트에서 현재 날짜와 시간을 가져 와서 화면에 결과를 인쇄하십시오. 아래 내용으로 getDateTime1.py 파일을 생성하십시오.

import datetime

currentDT = datetime.datetime.now()
print (str(currentDT))

결과는 다음과 같습니다.

2018-03-01 17:03:46.759624

나는 밀리 세컨드로 시간을 얻고 싶다. 그들을 얻을 수있는 간단한 방법 :

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)

먼저 datetime에서 datetime 모듈을 가져옵니다.

from datetime import datetime

그런 다음 현재 시간을 'yyyy-mm-dd hh : mm : ss'

print(str(datetime.now())

'hh : mm : ss'형식의 시간 만 얻으려면 ss는 초 수를 더한 초 수를 더한 것입니다.

print(str(datetime.now()[11:])

datetime.now ()를 문자열로 변환하면 우리가 사용했던 정규 날짜 및 시간과 같은 형식의 응답을 얻을 수 있습니다.


용도:

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

>>> print(datetime.datetime.now())
2018-07-29 09:17:13.812189

그리고 단지 시간 :

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

>>> print(datetime.datetime.time(datetime.datetime.now()))
09:17:51.914526

동일하지만 약간 더 간결합니다.

>>> datetime.datetime.now().time()

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

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

>>> from datetime import datetime

그런 다음 주요 datetime. 제거하십시오 datetime. 위의 모든 것에서.


이 함수를 사용하여 시간을 얻을 수 있습니다 (불행히도 AM 또는 PM을 말하지 않습니다).

def gettime():
        from datetime import datetime
        return ((str(datetime.now())).split(' ')[1]).split('.')[0]

나중에 병합 할 시간, 분, 초 및 밀리 초를 얻으려면 다음 함수를 사용할 수 있습니다.

시간:

def gethour():
        from datetime import datetime
        return 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 return (str(datetime.now())).split('.')[1]

이것은 내가 함께가는 결국입니다 :

>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")
01/09/2015 13:11

또한이 표는 원하는 형식으로 된 날짜를 얻기 위해 적절한 형식 코드를 선택하는 데 필요한 참조입니다 (Python "datetime"설명서 here 가져옴).


좋은 제안이지만 ctime() 을 사용하는 것이 가장 쉽다.

In [2]: from time import ctime
In [3]: ctime()
Out[3]: 'Thu Oct 31 11:40:53 2013'

이것에 의해, 현재의 현지 시간의 캐릭터 라인 표현이 정돈됩니다.


해야 할 것

from time import time

t = time()
  • t - 시간 간격 측정에 좋은 플로트 수.

Unix 및 Windows 플랫폼에는 몇 가지 차이점이 있습니다.


현재 시간을 time 개체로 필요로하는 경우 :

>>> import datetime
>>> now = datetime.datetime.now()
>>> datetime.time(now.hour, now.minute, now.second)
datetime.time(11, 23, 44)

Harley의 답변 과 비슷하지만, 빠르고 더러운, 약간 더 인간이 읽을 수있는 형식으로 str() 함수를 사용하십시오.

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

time.strftime() 사용할 수 있습니다.

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

미 해군 의 공식 계시원 인 미국 해군 관측소에 왜 물어 보지 않으시겠습니까?

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 지역 (나 같은)에 거주하는 경우 대기 시간이 그리 좋지 않을 수도 있습니다 ...


.isoformat() 은 문서에 있지만 아직 여기에는 없습니다 (@Ray Vega의 대답과 비슷합니다) :

>>> import datetime
>>> datetime.datetime.now().isoformat()
'2013-06-24T20:35:55.982000'

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

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

이 예제의 결과는 다음과 같습니다. '2013-09-18 11:16:32'

다음은 strftime 의 목록입니다.


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

현재 지정된 GMT가 지정된 형식으로 출력됩니다. localtime () 메소드도 있습니다.

page 에는 자세한 내용이 있습니다.


from time import ctime

// Day {Mon,Tue,..}
print ctime().split()[0]
// Month {Jan, Feb,..}
print ctime().split()[1]
// Date {1,2,..}
print ctime().split()[2]
// HH:MM:SS
print ctime().split()[3]
// Year {2018,..}
print ctime().split()[4]

ctime ()을 호출하면 초를 'Day Month Date HH : MM : SS Year'형식의 문자열 (예 : 'Wed January 17 16:53:22 2018')로 변환 한 다음 split () 메서드를 호출합니다. 'Wed', 'Jan', '17', '16:56:45', '2018'] (기본값 delimeter는 공백) 문자열 목록을 만듭니다.

대괄호는 목록에서 원하는 인수를 '선택'하는 데 사용됩니다.

하나의 코드 행을 호출해야합니다. 내가 그런 것처럼 부르면 안된다. 그것은 단지 예일 뿐이다. 어떤 경우에는 희귀하지만 불가능한 경우가 아닌 다른 값을 갖기 때문이다.


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) 또는 패키지를 포함한 모든 변수를 수행하십시오. 변수와 관련된 모든 속성 및 메소드를 가져올 수 있습니다.





time