Post

[Python] Unix Time

[Python] Unix Time

python-version-3.8

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 반환)
1
2
3
4
5
6
7
import datetime as dt


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

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

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

1
2
3
4
import time


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


Date Time Stamp → Unix Time Stamp

실행 컨텍스트 Timezone → UTC 로 자동변환
(ex. 실행 컨텍스트의 Timezone 이 KST일 경우, UTC 기준인 -9 hours 반환)

1
2
3
4
5
6
7
8
9
10
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}")
1
2
* 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을 반환하는 것을 확인가능하다.

1
2
3
4
5
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)
1
-32400.0
This post is licensed under CC BY 4.0 by the author.