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)
|
unix_time_stamp
가 0
임에도 불구하고 09:00:00
로 9시간이 추가되어있는 것을 확인할 수 있다.
실행 컨텍스트의 timezone 이 KST 이기 때문에 UTC 에서 KST 로 자동으로 변환 된 값이다.
1
2
3
4
| import time
print(time.tzname) # Timezone 확인
|
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)
|