JavaScript의 Date.toLocaleString() 메서드 프로그래밍


사용 방법:

const date = new Date();
const formattedDate = date.toLocaleString();
console.log(formattedDate); // 예: 2024년 6월 20일 목요일 오전 1시 4분 (PDT)

옵션:

toLocaleString() 메서드는 두 가지 옵션을 허용합니다.

  1. 옵션 객체: 두 번째 옵션은 toLocaleString()의 동작을 더욱 제어하는 옵션 객체입니다. 사용 가능한 옵션은 다음과 같습니다.

    • dateStyle: 날짜 형식을 지정합니다. 가능한 값은 "short", "medium", "long" 및 "full"입니다.
    • calendar: 사용할 캘린더를 지정합니다. 가능한 값은 "gregorian", "buddhist", "japanese" 등이 있습니다.
    • hour12: 12시간제나 24시간제를 지정합니다. true는 12시간제를, false는 24시간제를 나타냅니다.
    • timeZone: 시간대를 지정합니다. 예: "America/Los_Angeles".

예제:

const date = new Date();
const options = {
  dateStyle: "long",
  timeStyle: "full",
  timeZone: "America/New_York"
};
const formattedDate = date.toLocaleString("en-US", options);
console.log(formattedDate); // 예: 목요일, 2024년 6월 20일 오후 5시 4분 동부 표준시

참고:

  • toLocaleString()은 Intl.DateTimeFormat API를 사용하는 구현에서 Intl.DateTimeFormat를 단순히 호출합니다.
  • 날짜 형식은 로케일마다 다를 수 있습니다.
  • toLocaleString()은 비교적 느린 메서드입니다. 성능이 중요한 경우 toString()을 사용하는 것이 좋습니다.


JavaScript의 Date.toLocaleString() 관련 샘플 코드

기본 사용:

const date = new Date();
const formattedDate = date.toLocaleString();
console.log(formattedDate); // 예: 2024년 6월 20일 목요일 오전 1시 5분 (PDT)

로케일 지정:

const date = new Date();
const formattedDate = date.toLocaleString("ko-KR"); // 한국어 로케일
console.log(formattedDate); // 예: 2024년 6월 20일 목요일 오전 1시 05분 대한민국 표준시

옵션 객체 사용:

const date = new Date();
const options = {
  dateStyle: "long",
  timeStyle: "full",
  timeZone: "Europe/Paris"
};
const formattedDate = date.toLocaleString("en-FR", options);
console.log(formattedDate); // 예: 목요일 2024년 6월 20일 오후 2시 5분 파리 시간

날짜와 시간 형식 사용자 정의:

const date = new Date();
const options = {
  weekday: "long",
  month: "long",
  day: "numeric",
  hour: "numeric",
  minute: "numeric",
  second: "numeric"
};
const formattedDate = date.toLocaleString("en-US", options);
console.log(formattedDate); // 예: 목요일, 6월 20, 2024 1:05:00

12시간제 사용:

const date = new Date();
const options = {
  hour12: true
};
const formattedDate = date.toLocaleString("en-US", options);
console.log(formattedDate); // 예: 6/20/2024 1:05 AM

위의 예제는 Date.toLocaleString() 메서드의 다양한 기능을 보여줍니다. 로케일 설정에 따라 날짜와 시간을 문자열로 변환하는 데 유연하고 강력한 방법을 제공합니다.

  • 자신의 필요에 맞게 코드를 조정하십시오.


Date.toLocaleString의 대안

Intl.DateTimeFormat API는 Date.toLocaleString()보다 더 강력하고 유연한 날짜 형식 기능을 제공합니다. 특정 요소(예: 년, 월, 일, 시, 분, 초)를 포함하거나 제외하고, 서식 지정자를 사용하여 형식을 더욱 제어할 수 있습니다.

const date = new Date();
const dateTimeFormat = new Intl.DateTimeFormat("en-US", {
  year: "numeric",
  month: "long",
  day: "numeric",
  hour: "numeric",
  minute: "numeric",
  second: "numeric"
});
const formattedDate = dateTimeFormat.format(date);
console.log(formattedDate); // 예: 6월 20, 2024 1:05:00

Template literals 사용:

간단한 날짜 형식의 경우 템플릿 리터럴을 사용하여 문자열을 직접 구성하는 것이 더 간단하고 효율적일 수 있습니다.

const date = new Date();
const formattedDate = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`;
console.log(formattedDate); // 예: 2024-06-20 01:05:00

라이브러리 사용:

사용자 정의 함수 사용:

특정 요구 사항을 충족하는 사용자 정의 함수를 작성할 수도 있습니다. 이는 복잡한 형식이나 로직이 필요한 경우 유용합니다.

function formatDate(date) {
  const year = date.getFullYear();
  const month = date.getMonth() + 1; // 월은 0부터 시작
  const day = date.getDate();
  const hours = date.getHours();
  const minutes = date.getMinutes();
  const seconds = date.getSeconds();
  return `${year}-${month.toString().padStart(2, "0")}-${day.toString().padStart(2, "0")} ${hours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}:${seconds.toString().padStart(2, "0")}`;
}

const formattedDate = formatDate(new Date());
console.log(formattedDate); // 예: 2024-06-20 01:05:00

어떤 대안을 사용할지는 특정 요구 사항에 따라 다릅니다.

  • 간단하고 빠른 형식 지정에는 템플릿 리터럴을 사용하는 것이 좋습니다.
  • 더 많은 제어와 유연성이 필요한 경우 Intl.DateTimeFormat 또는 라이브러리를 사용하는 것이 좋습니다.
  • 특정 요구 사항을 충족하는 사용자 정의 함수를 작성해야 할 수도 있습니다.
  • 각 대안의 장단점을 고려하여 상황에 맞는 최적의 방법을 선택하십시오.
  • 성능이 중요한 경우 사용하는 방법을 프로파일링하여 병목 지점을 확인하는 것이 좋습니다.