Published on

JavaScript에서 날짜를 다루는 여러가지 방법들

Authors
  • 테크버킷
    Name
    테크버킷
    Twitter

Intro

JavaScript로 날짜를 다루는 것은 일반적인 코딩작업 중 하나입니다. 이 포스트에서는 JavaScript의 기본 Date() 객체를 사용해 날짜를 다루는 방법에 대해 알아보고, string으로 된 날짜를 어떻게 처리하는지도 살펴볼 것입니다. 또한 주로 사용되는 JavaScript 날짜 관련 라이브러리들을 비교해보겠습니다.

JavaScript의 Date 객체 이해하기

JavaScript에서 Date 객체는 날짜와 시간을 함께 표현합니다. 새로운 Date 객체는 new Date()를 통해 생성될 수 있습니다.

Date 객체 생성하기

JavaScript에서 Date 객체를 생성하는 가장 간단한 방법은 현재 날짜와 시간을 반환하는 new Date()입니다.

let currentDate = new Date()
console.log(currentDate)

날짜를 지정하여 Date 객체를 생성하려면 다음과 같은 방법들을 사용할 수 있습니다.

  • 특정 날짜와 시간: new Date(year, month, day, hours, minutes, seconds, milliseconds)
  • 날짜 문자열: new Date(dateString)

Date 객체에서 정보 추출하기

Date 객체에서 여러 가지 정보를 얻을 수 있습니다.

  • getFullYear(): 연도를 반환
  • getMonth(): 월을 반환 (0은 1월을 의미, 11은 12월을 의미)
  • getDate(): 일을 반환
  • getDay(): 요일을 반환 (0은 일요일, 6은 토요일)
  • getHours(): 시를 반환
  • getMinutes(): 분을 반환
  • getSeconds(): 초를 반환

날짜와 시간 설정하기

Date 객체의 날짜와 시간은 다음 메소드를 사용하여 설정할 수 있습니다.

  • setFullYear(year [, month [, day]])
  • setMonth(month [, day])
  • setDate(day)
  • setHours(hours [, minutes [, seconds [, milliseconds]]])
  • setMinutes(minutes [, seconds [, milliseconds]])
  • setSeconds(seconds [, milliseconds])

String으로 된 날짜 처리하기

날짜 형식의 문자열을 Date 객체로 변환하거나 반대로 Date 객체를 문자열로 변환하는 방법을 살펴봅시다.

문자열로 된 날짜 읽기: 날짜 형식 이해하기

JavaScript의 Date 객체는 다양한 날짜 형식의 문자열을 처리할 수 있습니다. 가장 일반적으로 사용되는 형식은 ISO 8601과 RFC2822 형식입니다.

ISO 8601 날짜 형식

ISO 8601은 국제 표준화 기구(ISO)에서 정한 날짜와 시간의 표현에 대한 국제 표준입니다. 이 형식은 "YYYY-MM-DDTHH:mm:ss.sssZ"과 같이 표현됩니다.

  • YYYY: 4자리 연도
  • MM: 2자리 월 (01 ~ 12)
  • DD: 2자리 일 (01 ~ 31)
  • T: 날짜와 시간을 구분하는 구분자
  • HH: 2자리 시간 (00 ~ 23)
  • mm: 2자리 분 (00 ~ 59)
  • ss.sss: 초 및 밀리초 (00.000 ~ 59.999)
  • Z: UTC 시간대를 나타냄. 'Z' 대신 +HH:mm 또는 -HH:mm을 사용하여 다른 시간대를 표현할 수 있음

문자열 날짜를 한국 시간으로 변환하기

Date 객체는 기본적으로 시스템의 로컬 시간대를 사용합니다. 따라서 한국 시간을 사용하려면 시스템의 시간대를 한국 시간으로 설정하면 됩니다.

하지만 특정 시간대를 기준으로 날짜와 시간을 처리하려면 toLocaleString 메소드를 사용하면 됩니다. 이 메소드는 날짜와 시간을 주어진 로케일에 맞게 표현하는데, 이를 통해 한국 시간대의 날짜와 시간을 얻을 수 있습니다.

let date = new Date('2023-07-25T15:30:00Z')
console.log(date.toLocaleString('ko-KR', { timeZone: 'Asia/Seoul' }))

이 코드는 주어진 날짜와 시간을 한국 시간대에 맞게 변환하여 출력합니다.

Date 객체를 문자열로 변환하기

Date 객체를 문자열로 변환하기 위해 JavaScript에서는 몇 가지 메소드를 제공합니다.

  • toString(): 사람이 읽을 수 있는 형태의 문자열로 반환
  • toISOString(): ISO 8601 형식의 문자열로 반환
  • toLocaleDateString(): 사람이 읽을 수 있는 형태로 날짜 부분만 반환
  • toLocaleTimeString(): 사람이 읽을 수 있는 형태로 시간 부분만 반환
  • toUTCString(): UTC 형태의 문자열로 반환

예를 들어:

let currentDate = new Date()
console.log(currentDate.toString())
console.log(currentDate.toISOString())

이 코드는 현재 날짜와 시간을 사람이 읽을 수 있는 형태의 문자열과 ISO 8601 형식의 문자열로 변환하여 출력합니다.

이처럼 JavaScript에서 문자열로 된 날짜를 읽거나 표시하는 방법은 다양하며, 작업의 요구에 따라 적절한 방법을 선택하면 됩니다.