엘리스 AI트랙 4기/프로젝트

[JavaScript] UTC 날짜, 시간 계산

남쪽마을밤송이 2022. 6. 25. 21:53

 [01 UTC란? ] 

  • UTC란 Coordinated Universal Time Universal Time Coordinated을 뜻하는 말로 번역하면 한국어로는 "협정 세계시"라고 한다.
  • 컴퓨터 세계에서도 이 UTC가 시간의 표준이 되는데, 한국은 UTC+9 시간대에 속하므로 UTC 시간에 +9를 해주면 한국 환산 시간이 나온다.
    • 예시로 UTC 03:00은 한국 기준으로는 오후 12:00이다.
    • 즉, 한국 시계가 협정 세계시보다 아홉 시간 빠르다.
  • 프로그래밍을 하다 보면 이 UTC를 한국 시간대로 바꿔야 하는 경우가 종종 생기는데 은근히 까다로워서 정리해보기로 했다.

 

 [02 관련 함수 ] 

  • 기본적으로 new Date()를 사용하여 현재 시간 객체를 생성할 수 있다.
  • 그리고 Date 객체에는 다음과 같은 메소드들을 사용할 수 있다.
    • getFullYear( ) : 로컬 시간의 연도를 반환
    • getYear( ) : 로컬 시간의 연도에서 1900을 뺀 결과를 반환
    • getMonth( ) : 로컬 시간의 월 값을 반환 (0부터 시작)
    • getDate( ) : 로컬 시간의 일 값을 반환
    • getDay( ) : 로컬 시간의 주 기준 요일 값을 반환 (일요일이 0부터 시작)
    • getTime( ) : 로컬 시간의 전체 시간값을 밀리초 값으로 나타내어 반환 (기준은 1970년 1월 1일 0시 0분)
    • getHours( ) : 로컬 시간의 시간 값을 반환 (24시간제)
    • getMinutes( ) : 로컬 시간의 분 값을 반환
    • getSeconds( ) : 로컬 시간의 초 값을 반환
    • getMilliseconds( ) : 로컬 시간의 밀리초 값을 반환
  • mdn 문서에 훨씬 더 많은 메소드가 있으니 참고하자.

 

 [03 코드 적용 ] 

  • 나는 다음과 같이 클래스로 작성해서 필요한 시간 계산 함수를 만들고 호출해 사용했다.

 (1) common / TimeUtil.js 

  • getTime( )은 현재 시간을 한국 시간대로 변경하는 메소드이다.
  • getYearAndDate({ fullTime })은 전체 Date 객체 형식에서 시간을 빼고 연도와 날짜만 반환하는 메소드이다.
const TimeUtil = {
    getTime: () => {
        const timezoneOffset = new Date().getTimezoneOffset() * 60000 // 한국 시간대 offset을 이용해 계산
        const time = new Date(Date.now() - timezoneOffset)
        return time
    }
     getYearAndDate: ({ fullTime }) => {
        const yearAndDate = fullTime.split("T")[0]
        return yearAndDate
    }
}

export { TimeUtil }
  • 필요할 때마다 클래스에 메소드를 추가하고 호출해서 사용하면 편하게 날짜 계산할 수 있다.