3. 비트코인 선물/3-1. 바이비트 선물 연구일지

(비트코인 자동매매API) UNIX 시간 개념 익숙해지기

봄이오네 2022. 10. 27. 08:06
반응형
목 차
1. 들어가며
2. 개념 설명
3. 파이썬에서 활용
1) 현재시간을 출력 (time 모듈 이용)
2) 현재시간을 GMT로 출력
3. UNIX 시간을 우리나라 시간으로 출력하기
4. 전체코드 및 결과

5. 마치며

1. 들어가며

주식/코인 투자에 필요한 개념은 시간이다.
장기투자가 아니라면,
사용자가 수익/손실에 대한 시간관리가 필요하다.

이 글에서는 바이비트API 활용을 위해 UNIX시간에 대해 설명할 것이다.
UNIX시간이 어떻게 바이비트API를 통해
파이썬의 코드로 사용할 수 있느냐이다.

※ 주의
자동차를 샀으면 운전을 먼저 배운다.
굳이 처음 구매했을 때부터 자동차의 엔진 구조 및 동작 원리를 알 필요는 없다.
UNIX시간 개념에 대해 깊게 들어가지는 않을 것이다.


2. 개념 설명

시간은 크게 2가지로 쓰인다.

  • GMT (Greenwich Mean Timer, 그리니치 표준시) : 우리가 사용하는 개념(00:00:00초)
  • UNIX (UNIX time, 유닉스 시간) : 1970년 1월1일 00:00:00 협정시부터 경과한 시간을 정수로 나타냄

즉 GMT는 00시 00분 00초로 표현 → 일상에서 활용하는 시간 개념 (영국 시간 기준으로 출력)
UNIX는 1970년 1월 1일 00시 이후, 경과한 시간을 정수로 나타냄 → 컴퓨터가 인식하는 시간


3. 파이썬에서 활용

1) 현재시간을 출력 (time 모듈 이용)

  • time모듈을 이용한다. 현재시간을 나태내는 코드는 time.time()이다.
  • UNIX시간으로 표기되어 직관적이지 않다. (역시 UNIX시간은 인간 친화적이지 않다. ㅠㅠ)
import time

print(time.time())


# (expected result)
# 1666415534.9066193

2) 현재시간을 GMT로 출력

  • GMT 모듈을 이용하여 출력을 해본 결과, 시간은 5:21분이 출력된다. → 영국시간이다.
  • 한국시간으로 2022-10-22, 14:21분을 나타낸다.

GMT는 직관적이지도 않으며, localtime을 활용하여 우리나라 시간으로 바꾸는 작업이 필요하다.

from time import time
from time import gmtime

print(time())
print(gmtime(time()))


# (expected result)
# 1666416061.4428363
# time.struct_time(tm_year=2022, tm_mon=10, tm_mday=22, tm_hour=5, tm_min=21, tm_sec=1, tm_wday=5, tm_yday=295, tm_isdst=0)

3) UNIX 시간을 우리나라 시간으로 출력하기

  • UNIX 현재시간은 1666416260.6108751이나,
  • datetime 모듈을 활용하여 GMT 형태(우리나라 시간)으로 변경할 수 있다.

아래에서 현재시간 time() 앞에 int를 붙이는 것은
UNIX은 마이크로 초를 나타낸다.

datetime 타임을 dt로 지칭하고,
dt 내에 있는 datetime의 fromtimestamp를 활용하여,
GMT로 변경한다.

현재시간을 나타낼 때 마이크로 초가 있으며,
2022-10-22 14:28:02.707138 이렇게 마이크로초가 출력되어,
가독성이 떨어지는 점을 고려하여 int(정수화)시켰다.
※ 마이크로초는 대세에 지장없으므로 버림 처리하였다.

import datetime as dt
from time import time


print(time())

print(dt.datetime.fromtimestamp(int(time())))


# (expected result)

# 1666416260.6108751
# 2022-10-22 14:24:20

4. 전체코드 및 결과

import datetime as dt
from time import time
from time import gmtime

print(time())

print(gmtime(time()))

print(dt.datetime.fromtimestamp((time())))


# (expecter result)
# 1666417050.514974
# time.struct_time(tm_year=2022, tm_mon=10, tm_mday=22, tm_hour=5, tm_min=37, tm_sec=30, tm_wday=5, tm_yday=295, tm_isdst=0)
# 2022-10-22 14:37:30

그림. GMT시간과 UNIX시간이 출력된 화면

5. 마치며

향후 설명할 1분봉 받기에는 UNIX시간을 활용할 것이다.

UNIX시간의 local GMT시간으로의 변경은 datetime 모듈을 활용하였다.
나중에 프린트 등 직관적으로 이해할 수 있는 "시간"이 필요할 때,
이 개념을 활용하자.

반응형