TL;DR

  • @taskade/temporal-parser 1.1.0ISO 8601, RFC 3339, IXDTF 시간 표현식을 구조화된 AST(추상 구문 트리)로 파싱함.
  • 날짜·시간·시간대·기간·범위·IXDTF 주석을 지원하며, 파싱에 성공해도 모든 후속 사용에 유효한 값임을 보장하지 않음.
  • RFC 9557의 시간대·달력 접미사를 보존하지만, 식별자의 IANA 존재 여부와 시간대 규칙, 오프셋 일치 여부는 확인하지 않음.
  • 날짜와 시간 필드의 범위를 검증하지 않아 2025-13-40도 월 13·일 40을 포함한 DateTime AST로 생성됨.
  • 지원 문법 밖의 문자열은 파싱 오류를 발생시키며, 버전 1.1.0은 관련 표준의 일부 문법만 구현함.

Temporal Parser 소개

  • @taskade/temporal-parser 라이브러리는 ISO 8601, RFC 3339, IXDTF 시간 표현식을 구조화된 AST(추상 구문 트리) 형식으로 파싱함.
  • 지원하는 시간 표현 범위는 다음과 같음.
  • 날짜: 2025-01-12
  • 시간: T10:30:45
  • 시간대: +08:00, [Asia/Singapore]
  • 기간: P1Y2M3DT4H5M6S
  • 범위: 2025-01-01/2025-12-31
  • IXDTF 주석: [u-ca=gregory]
  • 추가 참고 자료로 GitHub 저장소, NPM 패키지, 표준 참조 문서가 제공됨.

ISO 8601·RFC 3339·IXDTF의 관계

  • ISO 8601은 그레고리력 날짜와 24시간 형식을 상호 운용 가능한 방식으로 표현하는 표준임.
  • RFC 3339는 인터넷 프로토콜을 위한 더 좁은 타임스탬프 프로필을 선택함.
  • RFC 9557은 RFC 3339를 확장해 시간대와 달력 정보를 포함할 수 있는 대괄호 접미사를 추가하며, 이 형식을 IXDTF로 명명함.

검증된 파서 예시

  • 아래 결과는 @taskade/temporal-parser 1.1.0으로 빌드 시점에 생성된 뒤, 각 예시에 중요한 AST 필드만 추린 결과임.
  • RFC 3339 UTC 타임스탬프
  • 입력: 2025-01-12T10:00:00Z
  • 관찰된 AST 필드: kind=DateTime; offset.kind=UtcOffset
  • RFC 9557 / IXDTF 시간대·달력
  • 입력: 1996-12-19T16:39:57-08:00[America/Los_Angeles][u-ca=hebrew]
  • 관찰된 AST 필드: kind=DateTime; offset=-08:00; timeZone=America/Los_Angeles; u-ca=hebrew
  • ISO 8601 기간
  • 입력: P1Y2M3DT4H5M6S
  • 관찰된 AST 필드: kind=Duration; years=1; months=2; days=3; hours=4; minutes=5; seconds=6
  • ISO 8601 구간
  • 입력: 2025-01-01/2025-12-31
  • 관찰된 AST 필드: kind=Range; start=2025-01-01; end=2025-12-31

이 파서가 수행하는 작업과 수행하지 않는 작업

  • 라이브러리는 지원 문자열을 어휘 분석하고 구조적 AST를 반환함.
  • 지원되지 않는 문법은 파싱 오류를 발생시키며, 파싱 성공 자체는 해당 값이 모든 후속 사용에 유효함을 의미하지 않음.
  • 버전 1.1.0은 명시된 표준의 유용한 일부를 구현하며, 제시된 허용 예시는 모든 ISO 8601, RFC 3339, RFC 9557 문법과 규칙을 완전히 준수한다는 주장이 아님.
  • AST는 숫자 오프셋, 시간대 식별자, 접미사 주석을 보존함.
  • 식별자가 IANA 데이터에 존재하는지 확인하지 않음.
  • 시간대 규칙을 해석하지 않음.
  • 오프셋이 지정된 시간대와 일치하는지 확인하지 않음.
  • 날짜와 시간 필드의 범위는 검증하지 않음.
  • 예시로 2025-13-40은 월 13과 일 40을 포함한 DateTime AST를 생성함.
  • 실제 날짜로 취급하기 전에 파싱된 필드를 검증해야 함.

주요 참조 자료

  • ISO 8601-1:2019 — 기본 규칙
  • RFC 3339 — 인터넷 타임스탬프
  • RFC 9557 — IXDTF 접미사
  • TC39 Temporal 사양
  • Temporal 워크플로 플랫폼 문서
  • 표준 용어와 파서 동작은 2026년 7월 14일 패키지 버전 1.1.0을 기준으로 검증됨.