We.TIL 번외 : time module

김기욱·2020년 7월 29일
0

We.TIL

목록 보기
16/69

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_structu class

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

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

time()함수 : 현재의 timestamp얻기

time모듈의 time()함수는 현재 Unix timestamp를 소수로 리턴합니다. 정수쪽은 초단위이고, 소수쪽은 마이크로 초단위다.

gmtime(), localtime() 함수 : timestamp를 time_structure 타입으로 변환

gmtime()함수는 주어진 timestamp값을 GMT 기준의 time_structure타입 데이터로 변환해준다.
(참고 - GMT Time이란 영국 그리니치 천문대를 기준으로 한 그리치니 표준 시간대를 의미)

localtime()함수는 주어진 timestamp값을 현지 시간대 기준의 time_structure타입 데이터로 변환해준다.


결과값 :

ctime():timestamp를 문자열로 변환

ctime()함수는 주어진 timestamp를 현지 시간대 기준으로 미국에서 사용하는 요일 월 일 시:분:초형식으로 반환한다. 간단하게 timestamp가 나타내는 날짜와 시간을 확인해보는 용도로 쓰기에 좋다.

strftime():time_struct 타입 데이터를 특정 포맷의 문자열로 변환

strftime() 함수는 ctime()함수처럼 정해진 포맷이 아닌 다양한 포맷의 문자열 변환을 가능하게 해준다. 첫 번째 인자로 포맷을 넘겨야 하는데, 포맷 규칙은 파이썬 공식레퍼런스를 참고하면 된다. 두 번째 인자로는 반드시 timestamp 형식이 아닌 time_struct형식 데이터를 써야한다. 위에서 다룬 gmttime() 혹은 localtime()같은 함수를 사용해서 time_struct타입 데이터를 확보한 후에 strftime()함수의 두 번째 인자로 넘기면 된다.


[응용]프로그램 수행 시간 측정###

profile
어려운 것은 없다, 다만 아직 익숙치않을뿐이다.

0개의 댓글