[Python] Unix Time

less than 1 minute read

python-version-3.8.13

Unix Time

  • UNIX Time: 1970년 1월 1일 00:00:00(UTC)로 부터 현재 시간까지 경과된 초(Seconds)
  • UNIX Time == POSIX Time == Epoch Time



Unix Time Stamp → Date Time Stamp

  • UTC → 실행 컨텍스트의 Timezone에 맞게 자동변환
    (ex. 실행 컨텍스트의 Timezone이 KST일 경우, +9 hours 반환)
import datetime as dt


unix_time_stamp = 0  # int
dt_stamp = dt.datetime.fromtimestamp(unix_time_stamp)

print(dt_stamp)
1970-01-01 09:00:00

unix_time_stamp가 0임에도 불구하고 09:00:00로 9시간이 추가되어있는 것을 확인할 수 있다.
실행 컨텍스트의 timezone이 KST이기 때문에 UTC에서 KST로 자동으로 변환 된 값이다.

import time


print(time.tzname)  # Timezone 확인
('KST', 'KST')



Date Time Stamp → Unix Time Stamp

  • 실행 컨텍스트 Timezone → UTC로 자동변환
    (ex. 실행 컨텍스트의 Timezone이 KST일 경우, -9 hours 반환)
import time
import datetime as dt


dt_stamp = dt.datetime.now()
print(f'* datetime stamp: {dt_stamp}')

dt_stamp_timetuple = dt_stamp.timetuple()
unix_time_stamp = time.mktime(dt_stamp_timetuple)
print(f'* unix_time_stamp: {unix_time_stamp}')
* datetime stamp: 2022-04-18 21:24:53.182265
* unix_time_stamp: 1650284693.0


Timezone Auto Converting Test

Unix Time Stamp의 기준값(1970년 1월 1일 00:00:00(UTC))을 입력했으나
-9 hours 인 -32400.0을 반환하는 것을 확인가능하다.

dt_stamp = dt.datetime.strptime('1970-01-01 00:00:00', '%Y-%m-%d %H:%M:%S')
dt_stamp_timetuple = dt_stamp.timetuple()

unix_time_stamp = time.mktime(dt_stamp_timetuple)
print(unix_time_stamp)  # -32400 == -(3600 * 9)
-32400.0

Leave a comment