Python 3의 시간 모듈. 주요 메서드, 템플릿, 예제

거의 모든 프로그램은 시간을 사용합니다. Python에서는 이를 위해 별도의 라이브러리가 개발되었습니다. 시간다양한 작업을 수행하는 데 사용됩니다. 작동하게 하려면 먼저 코드 시작 부분에 선언해야 합니다. 이 줄은 다음 용도로 사용됩니다.

수입 시간

실제로 이 모듈을 올바르게 사용하는 방법에 대한 다양한 옵션을 고려해 보겠습니다. 

Epoch 이후의 시간(초) 확인

이 작업을 수행하기 위해 기능이 있습니다. 시간() 매개변수를 사용하지 않습니다. 반환 값은 1년 1970월 XNUMX일 이후 몇 초가 지났는지입니다. Python에서는 이 시간을 epoch의 시작이라고 합니다. 적어도 Unix 제품군의 운영 체제에서는.

Windows의 경우 날짜는 동일하지만 이 날짜 이전의 음수 값에 문제가 있을 수 있습니다. 

사용된 시간대는 UTC입니다.

수입 시간

초 = time.time()

print("에포크 이후 초 =", 초)

이 기능의 복잡성은 정확한 날짜를 표시하지 않고 초 수만 표시한다는 것입니다. 모두에게 친숙한 형식으로 변환하려면 정확한 정보를 사용해야 합니다. 이를 위해 함수가 사용됩니다. 시간.ctime().

날짜, 시간을 일반적인 형식으로 반환

일반적인 형식으로 시간을 반환하는 방법이 있습니다. 시간.ctime(). 대괄호는 변수 또는 Epoch 시작 이후 경과한 시간(초)을 나타내는 숫자를 나타냅니다. 이 메서드는 날짜, 연도, 시간, 분, 초 및 요일을 포함한 모든 날짜 및 시간 특성을 반환합니다.

이 함수는 인수 없이도 사용할 수 있습니다. 이 경우 현재 날짜, 시간 등을 반환합니다.

다음은 이를 보여주는 코드 스니펫입니다.

수입 시간

인쇄(시간.ctime())

23년 10월 18일 화요일 23:2018:XNUMX

마지막 줄은 Python 인터프리터가 실행 중인 콘솔에 인쇄되는 내용입니다. 이 메서드는 수신된 시간(초)을 사용자에게 친숙한 형식으로 자동 형식화합니다. 사실, 위에서 설명한 모든 요소는 거의 사용되지 않습니다. 일반적으로 시간 또는 오늘 날짜만 가져와야 합니다. 이를 위해 별도의 기능이 사용됩니다. strftime(). 그러나 그것을 고려하기 전에 클래스를 구문 분석해야 합니다. 시간.구조_시간.

클래스 time.struct_time

이것은 다양한 방법에서 받아들일 수 있는 인수의 범주입니다. 옵션이 없습니다. 명명된 인터페이스가 있는 튜플입니다. 간단히 말해서, 이 클래스의 요소는 이름과 인덱스 번호로 액세스할 수 있습니다.

다음 속성으로 구성됩니다.Python 3의 시간 모듈. 주요 메서드, 템플릿, 예제

주목! 다른 많은 프로그래밍 언어와 달리 여기에서 월의 범위는 1에서 12이 아니라 11에서 XNUMX입니다.

특정 형식 반환

기능 사용 strftime () 년, 월, 일, 시, 분, 초를 개별적으로 가져와서 텍스트 문자열로 반환할 수 있습니다. 그런 다음 기능을 사용하여 사용자에게 인쇄할 수 있습니다. 인쇄() 또는 달리 처리됩니다.

함수는 이 모듈의 다른 함수에서 반환된 값을 취하는 모든 변수를 인수로 사용할 수 있습니다. 예를 들어 현지 시간을 전송할 수 있습니다(나중에 설명함). 여기에서 필요한 데이터를 가져올 수 있습니다.

다음은 우리가 수행하는 코드 스니펫입니다.

수입 시간

named_tuple = time.localtime() # struct_time 가져오기

time_string = time.strftime(<%m/%d/%Y, %H:%M:%S>,named_tuple)

인쇄(시간 문자열)

이 코드를 실행하면 현재 날짜와 시간이 표시됩니다. 요소의 형식과 순서는 변경할 수 있습니다. 그것들은 다음과 같습니다:

  1. %Y는 연도입니다.
  2. %m은 월입니다.
  3. %d – 일.
  4. %H – 시간.
  5. %M – 분.
  6. %S – 두 번째.

따라서 월과 일만 출력되도록 만들 수 있습니다. 이렇게 하려면 연도를 표시하는 명령을 내리지 않아도 됩니다. 즉, 위의 수식을 인수 %m/%d로 작성하면 됩니다. 또는 그 반대의 경우도 마찬가지입니다. %d/%m. 

사실, 문자열 리터럴의 수는 훨씬 더 많습니다. 다음은 그것들을 자세히 설명한 표입니다.Python 3의 시간 모듈. 주요 메서드, 템플릿, 예제

특정 시간(초) 동안 스레드 연기

이를 위해 함수가 사용됩니다. 잠 (). 상당히 큰 프로그래밍 작업 블록은 시간의 흐름과 관련이 있습니다. 때로는 일정 시간 동안 다음 단계를 연기해야 ​​합니다. 예를 들어, 처리하는 데 일정 시간이 걸리는 데이터베이스와 상호 작용해야 하는 경우입니다.

이 메서드는 알고리즘에서 다음 단계를 지연하는 데 걸리는 시간(초)을 나타내는 값을 인수로 사용합니다.

예를 들어, 이 스니펫에서 지연은 10초입니다.

수입 시간

일시 중지 = 10

print(«프로그램이 시작되었습니다...»)

time.sleep(일시 중지)

print(str(pause) + »초가 지났습니다.»)

결과적으로 다음을 얻을 수 있습니다.

프로그램 시작…

10초가 지났습니다.

출력에서 볼 수 있듯이 프로그램은 먼저 시작되었다고 보고합니다. 그리고 XNUMX초 후, 그녀는 이 시간이 지났다고 썼다.

이 기능을 사용하면 일시 중지 기간을 밀리초 단위로 지정할 수 있습니다. 이를 위해 함수 인수의 분수 값을 사용합니다. 자다. 예를 들어 0,1입니다. 이것은 지연이 100밀리초가 될 것임을 의미합니다.

현지 시간 가져오기

localtime() 함수를 사용하여 프로그램은 특정 시간대의 에포크 시작 이후 경과된 시간(초)을 가져옵니다. 

명확성을 위해 예제 코드를 제공하겠습니다.

수입 시간

결과 = time.localtime(1575721830)

print("결과:", 결과)

print(«nгод:», result.tm_year)

print(<tm_hour:>>, result.tm_hour)

에포크 이후의 초 수를 기준으로 UTC로 struct_time을 반환합니다.

이 작업은 time.gmtime()을 사용하여 수행됩니다. 방법. 우리가 예를 들면 더 명확해질 것입니다.

수입 시간

결과 = time.gmtime(1575721830)

print("결과:", 결과)

print(«nгод:», result.tm_year)

print(<tm_hour:>>, result.tm_hour)

이 일련의 작업을 켜면 시간, 연도 및 시간대와 관련된 요소 집합이 표시됩니다.

현지 시간으로 자동 변환하여 Epoch 시작 이후 경과된 시간(초)을 반환합니다.

이러한 작업에 직면하면 다음 방법을 사용하여 구현합니다. mktime (), 걸립니다 구조체_시간. 그 후, 함수의 역동작을 수행합니다. 현지 시각(). 즉, 현지 시간대에 따른 시간을 시간대에 맞게 조정된 epoch 시작 이후 경과한 초 수로 변환합니다.

mktime() 및 localtime() 함수는 밀접하게 얽혀 있습니다. 이 코드 스니펫은 이를 명확하게 보여줍니다. 어떻게 작동하는지 더 깊이 이해하기 위해 살펴보겠습니다. 

수입 시간

초 = 1575721830

# struct_time을 반환합니다.

t = time.localtime(초)

인쇄(«t1: «, 티)

# struct_time에서 초를 반환합니다.

s = 시간.mk시간(t)

인쇄(«ns:», 초)

우리는 변수가 Epoch 이후 1575721830초가 할당되었습니다. 먼저 프로그램은 이 값을 기반으로 정확한 날짜, 시간 및 기타 매개변수를 가져와 변수에 넣습니다. t, 그리고 그 내용을 변수로 변환합니다. s.

그 후 새 줄을 시작하고 콘솔에 초 수를 표시합니다. 초 변수에 할당된 것과 동일한 번호임을 확인할 수 있습니다.

struct_time을 참조하는 9개의 숫자에서 날짜 출력

연도, 월, 날짜, 요일 및 기타 여러 값을 나타내는 9개의 숫자가 있고 이를 하나의 문자열로 결합해야 한다고 가정합니다. 이를 위해 함수가 사용됩니다. asctime(). 그녀는 수락 또는 준비 구조체_시간, 또는 동일한 값을 나타내는 9개의 다른 튜플입니다. 그런 다음 날짜, 시간 및 기타 여러 매개변수인 문자열이 반환됩니다. 

이질적인 사용자 지정 데이터를 단일 변수로 가져오려면 이 방법을 사용하는 것이 매우 편리합니다..

예를 들어, 사용자가 이벤트 등록에 관한 요일, 월, 년, 요일 및 기타 데이터를 별도로 지정하는 프로그램일 수 있습니다. 그 후 수신된 정보는 데이터베이스에 입력된 다음 요청한 다른 사람에게 발급됩니다.

Python 문자열을 기반으로 시간 및 날짜 얻기

사용자가 서로 다른 데이터를 지정했고 사용자가 입력한 형식으로 한 줄로 결합한 다음 다른 변수에 복사본을 만들어 표준 형식으로 다시 작성해야 한다고 가정합니다. 이를 위해 함수가 사용됩니다. 시간.strptime().

이 값이 지정된 변수를 사용하여 이미 친숙한 값을 반환합니다. 구조체_시간.

명확성을 위해 우리는 그러한 프로그램을 작성할 것입니다.

수입 시간

time_string = «15년 2019월 XNUMX일»

결과 = time.strptime(time_string, «%d %B, %Y»)

인쇄(결과)

출력이 무엇인지 맞춰보세요? 결론을 보지 않고 추측해 보십시오. 그리고 답을 확인하세요.

time.struct_time (tm_year = 2019, tm_mon = 6, tm_mday = 15, tm_hour = 0, tm_min = 0, tm_sec = 0, tm_wday = 5, tm_yday = 166, tm_isdst = -1)

한마디로 파이썬에서 날짜와 시간을 다루는 것은 전혀 어렵지 않습니다. 이 지침을 따르면 충분하며 모든 것이 잘 될 것입니다. 라이브러리 사용 시간 사용자는 다음과 같이 시간을 들여 작업할 수 있는 많은 기회를 얻습니다.

  1. 지정된 시간 동안 프로그램 실행을 일시 중단합니다.
  2. Epoch 이후 경과된 시간을 초 단위로 표시합니다. 이 정보는 시간을 요약하거나 이에 대한 다른 수학 연산을 수행하는 데 사용할 수 있습니다.
  3. 편리한 형식으로 변환합니다. 또한 프로그래머가 직접 표시할 요소와 순서를 설정할 수 있습니다. 

다른 가능성도 많이 있지만 오늘은 가장 기본적인 가능성을 분석했습니다. 어떻게 든 시간과 함께 작동하는 거의 모든 프로그램에서 유용할 것입니다. 행운을 빕니다.

댓글을 남겨주세요.