안녕하세요. 파이썬으로 timestamp를 다루다가 모르는 부분이 있어서 질문드립니다.
예를 들어 t = 1672959599일 때, 이걸 datetime으로 변환하면 datetime.datetime(2023, 1, 6, 7, 59, 59)이 됩니다.
제가 하려고 하는 건 이런 timestamp 값들을 어떤 시간 간격으로 구분하는 것입니다.
예를 들어 t를 60으로 나눠서 몫을 구하고 다시 60을 곱하면( t // 60 * 60) datetime.datetime(2023, 1, 6, 7, 59)이 되어서, 1분 단위로 구분할 수 있습니다.
그런데 이걸 60분 단위( 2023, 1, 6, 7, 59 -> 2023, 1, 6, 7, 0 )나 10분 단위( 2023, 1, 6, 7, 59 -> 2023, 1, 6, 7, 50 )로 변환하는 방법을 모르겠습니다.
t // 60 * 60 에서 원래 값의 초가 소거되는 것을 보니 어떤 규칙이 있는 것 같은데요.
아시는 분이 계시면 도움 말씀 부탁드립니다.
다만 이것도 요일이나 일자론 불가하고,,, 시간이란게 워낙 요상한 친구라, 가능하면 datetime 객체로 변환 후 replace 하시는걸 추천하긴 합니다.
t//60 : t 의 값을 60으로 나누면서 나머지를 버립니다.
ex) t = 125 라면, t//60 => 2
결과에 60을 곱하면 => 2*60 => 120
125 였던것이 120이 되는 것이죠. 즉, 60으로 나눌때 나머지를 버리는 방식입니다.
이걸 조금만 변형하면 60분은 60*60 = 3600초 이니까
t//3600 * 3600 하면
ex) t = 2시간 1분 = 7260 초, t//3600 => t = 2 이고,
2*3600 => 7200 이 됩니다.
t=7260 일때, t//3600 * 3600 = 7200
60초가 날아가는거죠...
const TIME_LAP_1HR = 3600
t // TIME_LAP_1HR * TIME_LAP_1HR
원리는 위와 같습니다.
응용해서 사용하면 될듯하네요.
별거아니에요...