JavaScript 날짜를 특정 시간대로 초기화

Harshit Jindal 2023년10월12일
  1. Intl.DateTimeFormatformat()메서드를 사용하여 JavaScript 날짜를 특정 시간대로 초기화
  2. toLocaleString()메소드를 사용하여 JavaScript 날짜를 특정 시간대로 초기화
JavaScript 날짜를 특정 시간대로 초기화

이 자습서에서는 JavaScript 날짜를 특정 시간대로 초기화하는 방법을 설명합니다.

JavaScript의 날짜 개체는 내부적으로 UTC와 함께 작동하지만 운영중인 컴퓨터의 현지 시간에 따라 출력을 표시합니다. 날짜 개체에는 시간대 개념이 없습니다. 선언 된 문자열 개체가 없습니다. 1970-01-01 00:00:00 UTC이후 경과 된 밀리 초 수를 측정 한 것입니다. 시간을 출력하는 동안 컴퓨터의 현지 시간대를 자동으로 고려하여 내부 표현에 적용합니다. 다른 시간대에서는 작동하지 않습니다. 따라서 이러한 작업을 수행하려면 함수와 외부 라이브러리의 도움이 필요합니다.

Intl.DateTimeFormatformat()메서드를 사용하여 JavaScript 날짜를 특정 시간대로 초기화

JavaScript Intl 개체는 JavaScript 국제화 API를위한 도구입니다. 날짜 / 시간, 문자열 및 숫자 변환을위한 많은 기능을 제공합니다. Intl 개체는DateTimeFormat을 사용하여 날짜-시간 문자열의 형식을 지정합니다. 여기에는 날짜를 가져 와서 포맷터에 인수로 제공된 로케일 및 옵션을 사용하여 다른 시간대로 변환하는format메소드가 있습니다. 이 메소드는 날짜를 필요한 시간대로 형식화하고 문자열로 변환합니다.

format()함수가 취하는 매개 변수는 날짜입니다. Intl.DateTimeFormat개체의 형성을 위해 다음 인수가 필요합니다.

  1. locales: 언어 및 로케일 태그를 포함하는 문자열 배열입니다. 일반적으로 선택적 매개 변수이지만 우리의 목적에 필요합니다. 시간대를 변경하려면 BCP 언어 코드와 필요한 시간대 만 지정하면됩니다.
  2. options: 비교를 수행하기위한 속성을 지정하는 데 사용되는 개체입니다. 스타일 및 표시 단위를 지정하는 데 사용할 수있는 선택적 매개 변수이기도합니다. 일부 속성은second, minute, hour, day, monthyear등입니다.

예 :{hour : 'numeric', hour12 : false, minutes : 'numeric', timeZoneName : 'short'}와 같은 옵션 객체를 전달할 수 있습니다.

function changeTimezone() {
  let date = new Date(Date.UTC(2021, 5, 28, 3, 0, 0));
  console.log('Date in India: ' + date);
  let formatter =
      new Intl.DateTimeFormat('en-US', {timeZone: 'America/Denver'});
  let usDate = formatter.format(date);
  console.log('Date in USA: ' + usDate);
}

출력:

Date in India: Mon Jun 28 2021 08:30:00 GMT+0530 (India Standard Time)
VM1504:7 Date in USA: 6/27/2021

위 함수에서 먼저Date()생성자를 사용하여 Date 객체를 만듭니다. 그런 다음 로케일, 즉BCP 언어 태그및 변환 할timeZone을 지정하는Intl.DateTimeFormat을 사용하여 포맷터를 만듭니다. 그런 다음이 포맷터를 사용하여 날짜를 필요한 시간대로 변환합니다.

toLocaleString()메소드를 사용하여 JavaScript 날짜를 특정 시간대로 초기화

toLocaleString()메소드는 사용하기 쉽고 날짜에서 직접 호출 할 수 있으므로 시간대 변경에 가장 일반적으로 사용됩니다. Intl.DateTimeFormat과 동일한 영향력으로 작동합니다. 또한 로케일 문자열과 옵션을 인수로 취하고 그에 따라 날짜 형식이 지정된 문자열을 리턴합니다. 이 방법의 장점은 위의 방법과 달리 국가의 시간대에 따라 시간을 변환하여 문자열로 반환한다는 것입니다.

function changeTimezone() {
  let date = new Date(Date.UTC(2021, 5, 28, 3, 0, 0));
  console.log('Date in India: ' + date);
  let usDate = date.toLocaleString('en-US', {timeZone: 'America/New_York'});
  console.log('Date in USA: ' + usDate);
}

출력:

Date in India: Mon Jun 28 2021 08:30:00 GMT+0530 (India Standard Time)
Date in USA: 6/27/2021, 11:00:00 PM

위의 함수에서 먼저Date()생성자를 사용하여 Date 객체를 만듭니다. langauge tagtimeZone을 지정하는 날짜에서toLocaleString함수를 호출하고 다른 시간대로 변환 된 날짜 / 시간을 가져옵니다.

Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

관련 문장 - JavaScript DateTime