콘텐츠로 건너뛰기

파이썬 datetime, time 모듈로 현재 시간

  • by

간단한 시간 데이터를 처리하기 위해서 사용되는 파이썬의 내장 모듈인 time에 대해서 알아보도록 하겠습니다.

Epoch Time

파이썬의 time 내장 모듈은 주로 epoch time(Unix time, POSIX time)을 다룰 때 사용합니다.
epoch time은 UTC(GMT+0) 기준으로 1970년 1월 1일 0시 0분 0초부터의 경과 시간을 나타내는데 흔히 timestamp라고 불리기도 합니다.

인간이 사용하는 사용하는 날짜와 시간에는 시간대(time zone), 일괄절약타임(date light saving), 윤년/윤달, 양력/음력 등 여러가지 복잡한 개념들이 많이 들어가 있습니다.
따라서 전산 시스템에서는 이렇게 복잡한 날짜와 시간을 모델링하는 대신에, epoch time을 이용해서 시간을 단순하게 숫자로 저장하고 처리하는 경우가 많습니다.

time_struct 클래스

컴퓨터 친화적인 Unix timestamp 값은 인간에게는 직관적이지 않습니다.
예를 들어, timestamp 1575142526.500323를 보고, 무슨 날짜와 시간을 나타내는지를 바로 알아차릴 수 있는 사람은 많지 않을 것입니다.

따라서, time 모듈은 timestamp가 주어졌을 때, 날짜와 시간을 알아내기 위한 API를 제공하는데요.
이를 위해 time 모듈은 내부적으로 날짜와 시간을 표현하기 위해서 9개의 속성를 갖는 time_struct 클래스를 사용합니다.

이름비고
tm_year예: 1993, 2019
tm_mon범위: 1~12
tm_mday범위: 1~31
tm_hour범위: 0~23
tm_min범위: 0~59
tm_sec범위: 0~61
tm_wday요일범위: 0~6 (0: 월요일)
tm_yday연중 경과일범위: 1~366
tm_isdst일광절약타임 적용여부0: 미적용 1: 적용 -1: 모름

time() 함수: 현재 timestamp 얻기

time 모듈의 time() 함수는 현재 Unix timestamp을 소수로 리턴하는데요. 정수부는 초단위이고, 소수부는 마이크로(micro) 초단위 입니다.

import datetime

now = datetime.datetime.now()
print now

>> 2020/02/04 19:05:50.928134
import time

now = time.localtime()
print "%04d/%02d/%02d %02d:%02d:%02d" % (now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec)

>> 2020/02/04 19:05:50

답글 남기기