댓글 검색 목록

[javascript] Temporal : JavaScript의 새로운 날짜 시간 API 시작하기

페이지 정보

작성자 운영자 작성일 21-07-04 12:57 조회 1,707 댓글 0

이 블로그 게시물에는 두 가지 목표가 있습니다.


  • Temporal의 작동 방식에 대한 느낌을 줍니다.
  • 시작하는 데 도움

그러나 완전한 문서는 아닙니다. 자세한 내용은 Temporal에 대한 (우수한) 문서를 참조해야 합니다.


경고 :이 API에 대한 첫 번째 탐색입니다. 피드백 환영합니다!


Temporal API 


Temporal 날짜 시간 API는 전역 변수 Temporal을 통해 액세스 할 수 있습니다. 사용하는 것이 즐겁습니다 :


  • 모든 개체는 변경할 수 없습니다. 이를 변경하면 JavaScript에서 문자열이 작동하는 방식과 유사하게 새로운 값이 생성됩니다.
  • 시간대 및 그레고리력이 아닌 달력에 대한 지원이 있습니다.
  • 시간 값에 대한 몇 가지 특수 클래스가 있습니다 (시간대가 있는 날짜 시간 값, 시간대가 없는 날짜 시간 값, 시간대가 없는 날짜 값 등). 여기에는 몇 가지 이점이 있습니다.
    값의 컨텍스트 (시간대 여부 등)는 이해하기 더 쉽습니다.
    주어진 작업을 수행하는 방법이 더 분명한 경우가 많습니다.
    .toString ()은 훨씬 덜 고려하여 사용할 수 있습니다.
  • 1 월은 1 월입니다.

이 블로그 게시물의 일부 :


  • 게시물은 배경 지식으로 시작됩니다. 나머지 게시물에 도움이 될 것이지만 그것 없이는 괜찮을 것입니다.
  • 다음으로, Temporal API의 모든 클래스에 대한 개요와 이들이 어떻게 결합되는지에 대해 설명합니다.
  • 마지막에는 예제가 포함 된 포괄적인 섹션이 있습니다.

배경 : 시간 표현 


태양시에서 표준시까지 


역사적으로 우리가 시간을 측정하는 방법은 수년에 걸쳐 진행되었습니다.

  • 겉보기 태양 시간 (현지 겉보기 시간) : 시간을 측정하는 가장 초기 방법 중 하나는 현재 시간을 태양의 위치를 ​​기준으로 하는 것이었습니다. 예를 들어 정오는 태양이 바로 머리 위에 있을 때입니다.
  • 평균 태양시 (현지 평균시) :이 시간 표현은 겉보기 태양 시간의 변화를 수정하여 연중 매일 같은 길이를 갖도록 합니다.
  • 표준 시간 및 시간대 : 표준 시간은 지리적 지역 내의 시계를 동기화하는 방법을 지정합니다. 날씨 예보와 기차 여행을 지원하기 위해 19 세기에 설립되었습니다. 20 세기에는 표준 시간이 전 세계적으로 정의되었고 지리적 지역이 표준 시간대가 되었습니다.

벽시계 시간은 시간대 내의 현재 시간입니다 (벽에 시계로 표시됨). 벽시계 시간은 현지 시간이라고도 합니다.


시간 표준 : UTC 대 Z 대 GMT 


UTC, Z 및 GMT는 비슷하지만 미묘하게 다른 시간을 지정하는 방법입니다.


  • UTC (협정 세계시)는 모든 시간대의 기반이 되는 시간 표준입니다. 그것들은 상대적으로 지정됩니다. 즉, 현지 시간대로 UTC가있는 국가 나 지역은 없습니다.
  • Z (줄루 시간대)는 항공 및 군대에서 UTC + 0의 다른 이름으로 자주 사용되는 군사 시간대입니다.
  • GMT (그리니치 표준시)는 일부 유럽 및 아프리카 국가에서 사용되는 시간대입니다. UTC에 0 시간을 더한 값이므로 UTC와 동일한 시간을 가집니다.

출처 :

시간대 대 시간 오프셋 


Temporal의 시간대는 IANA 시간대 데이터베이스 (줄임말 : tz 데이터베이스)를 기반으로 합니다. IANA는 Internet Assigned Numbers Authority의 약자입니다. 해당 데이터베이스에서 각 시간대에는 UTC 시간에 대한 오프셋을 정의하는 식별자와 규칙이 있습니다. 시간대에 표준 시간 및 일광 절약 시간이 있는 경우 오프셋은 1 년 동안 변경됩니다.

const standardTime = Temporal.ZonedDateTime.from({
  timeZone: 'Europe/Zurich',
  year: 1995,
  month: 11,
  day: 30,
  hour: 3,
  minute: 24,
});
assert.equal(
  standardTime.toString(),
  '1995-11-30T03:24:00+01:00[Europe/Zurich]'); // (A)

const daylightSavingTime = Temporal.ZonedDateTime.from({
  timeZone: 'Europe/Zurich',
  year: 1995,
  month: 5,
  day: 30,
  hour: 3,
  minute: 24,
});
assert.equal(
  daylightSavingTime.toString(),
  '1995-05-30T03:24:00+02:00[Europe/Zurich]'); // (B)

표준 시간에서 유럽 / 취리히 시간대의 시차는 +1 : 00 (라인 A)입니다. 일광 절약 시간에서 시간 오프셋은 +2 : 00입니다 (라인 B).


시간대 작업을 위한 리소스 


https://2ality.com/2021/06/temporal-api.html



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.