v4.2.0: Add timezone features and improve code organization#116
Merged
knowledgecode merged 5 commits intomasterfrom Jan 18, 2026
Merged
v4.2.0: Add timezone features and improve code organization#116knowledgecode merged 5 commits intomasterfrom
knowledgecode merged 5 commits intomasterfrom
Conversation
Move TimeZone interface and helper functions from timezone.ts to a new zone.ts file to improve code organization and prepare for adding consolidated timezone imports feature. This change does not affect the external API or functionality.
… support
Add two new ways to use timezones:
1. Consolidated imports: Import multiple timezones from a single module
import { Tokyo, New_York } from 'date-and-time/timezone';
2. IANA timezone name strings: Use timezone names directly in format()
format(date, 'YYYY-MM-DD HH:mm', { timeZone: 'Asia/Tokyo' });
The tools/timezone.ts script now generates both individual timezone files
and an integrated timezone.ts file for consolidated imports.
Note: The parse() function does not support IANA name strings, only
TimeZone objects and the "UTC" string.
Add comprehensive tests for: - Consolidated timezone imports from 'date-and-time/timezone' - IANA timezone name string support in format() - Ensure both import methods produce identical results
Update all documentation to explain the three methods for specifying timezones: 1. Individual imports (date-and-time/timezones/Asia/Tokyo) 2. Consolidated imports (date-and-time/timezone) 3. IANA timezone name strings (format only) Add migration guide for v4.2.0 with detailed examples and usage notes.
Update version to 4.2.0 to reflect new timezone features. Update development dependencies to their latest versions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces major enhancements to timezone handling and improves code organization:
TimeZoneinterface and helper functions into a newzone.tsfile for better code organizationdate-and-time/timezoneentry point allowing import of multiple timezones from a single moduleformat()function now accepts IANA timezone name strings (e.g.,'Asia/Tokyo') in addition to TimeZone objectsChanges Included
1. Refactor: Separate TimeZone type definition into zone.ts
TimeZoneinterface and helper functions to newzone.tsfile2. Feat: Add consolidated timezone imports and IANA timezone name string support
timezone.tsfileformat()./timezoneexport topackage.json3. Refactor: Use nullish coalescing operator and improve code quality
formatter.ts4. Test: Add tests for new timezone features
5. Docs: Update documentation
6. Chore: Bump version to 4.2.0 and update dependencies