본문 바로가기
Study/PYTHON

타임스탬프(timestamp) 계산시 유의사항

by 멘탈은안녕하신가 2018. 12. 23.
728x90
반응형

파이썬으로 타임 스탬프를 처음 접했다.

타임스탬프는 1970년 1월 1일 00시를 기준으로 현재까지 흘러온 '초'를 나타내는 숫자이다.


현재시간을 구하기 위해서 이 타임스탬프를 많이 이용하는데, 조금 애를 먹었다.


  • 코드 테스트 시간 : 22시 50분
1
2
3
4
5
Import time
 
ttime = time.time() // ttime에 전체 '초'를 넣는다.
tmtime = ttime/60 // tmtime에 전체 '분'을 넣는다.
thtime = tmtime/60 // thtime에 전체 '시'를 넣는다.
cs


먼저 현재 '분'을 구해야 한다.

어떻게 해야 할까?

바로 '나머지'를 활용하는 방법이 있다.


전체 '분'을 나타내는 tmtime에서 60을 나눠 전체 '시간'을 구한 thtime.

thtime은 60으로 나눠진 '몫'이다.


이 '몫'은 '시간'만을 나타내기 때문에 나머지인 '분'과 '초'를 버려버린다.

그래서 '분'을 구할때는 다음과 같이 %를 이용해 계산한다.

1
nmtime = tmtime%60
cs

'몫'인 '시간'을 버리고 나머지인 '분'만 취하는 것이다.

나타난 값을 보면 '50.12345678'


이런 방식을 활용해서 '시간'도 구할 수 있는데, 약간의 트릭이 존재한다.

위와같은 방법으로 '시간'을 구하게 되면 다음과 같이 할 수 있다.

1
nhtime = thtime%24 // 전체 '시간'을 전체'일'로 바꾸려면 24를 나눠야 한다.
cs

이때 nhtime의 값을 보면 다음과 같이 나온다.

'13.12345678'


"어라? 계산이 잘못되었나?"

이 생각이 드는 순간, 당신은 트릭에 빠진것이다.


가장 처음에 했던 말을 떠올려보자.

['타임스탬프'는 1970년 1월 1일 00시(00:00 표준시) 를 기준으로 한다.]

이 말을 보고 떠오르는 것이 있을것이다.


시차!


그렇다. 우리는 대한민국, +09:00 에 살고있다.

이제 해결이 되었는가?


값으로 나온 13에 +9를 하게되면 22(테스트시간 22시)가 되면서 의문이 풀릴 것이다.

728x90
반응형

댓글