TL;DR
- @taskade/temporal-parser 1.1.0이 ISO 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을 포함한DateTimeAST를 생성함. - 실제 날짜로 취급하기 전에 파싱된 필드를 검증해야 함.
주요 참조 자료
- ISO 8601-1:2019 — 기본 규칙
- RFC 3339 — 인터넷 타임스탬프
- RFC 9557 — IXDTF 접미사
- TC39 Temporal 사양
- Temporal 워크플로 플랫폼 문서
- 표준 용어와 파서 동작은 2026년 7월 14일 패키지 버전 1.1.0을 기준으로 검증됨.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요