awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
tc39 avatar

tc39/proposal-temporal

0
View on GitHub↗
3,701 stars·176 forks·HTML·2 viewstc39.es/proposal-temporal/docs↗

Proposal Temporal

This project is a proposal for a new immutable date and time API in JavaScript. It serves as a precision time-tracking library and a multi-calendar date engine designed to replace the legacy Date object.

The system is distinguished by its support for multiple calendar systems beyond the ISO standard and its use of IANA-based time zone resolution. It provides a framework for managing daylight saving transitions and UTC offsets while maintaining nanosecond precision for global timestamps.

The API covers broad functional areas including complex date and time arithmetic, locale-aware formatting, and bidirectional serialization using ISO 8601 and RFC 9557 standards. It includes a variety of immutable data structures for representing instants, plain dates, wall-clock times, and zoned date-time entities, along with logic for chronological comparison across different calendars.

Features

  • Date and Time Libraries - Implements a comprehensive date and time library for managing complex calculations across time zones and calendars.
  • Immutable Temporal APIs - Provides a comprehensive immutable API for performing date and time calculations across multiple calendar systems.
  • Object Serializers - Provides industry-standard serialization of temporal data objects into machine-readable strings for consistent storage.
  • Date Component Extractors - Provides utilities for retrieving individual date properties such as year, month, and day.
  • JavaScript APIs - Proposes a new immutable date and time API for JavaScript to replace the legacy Date object.
  • Temporal Component Extraction - Extracts individual units such as hour, minute, second, and nanosecond as read-only properties.
  • Temporal Serialization - Supports bidirectional conversion of date and time objects to and from standardized strings like ISO 8601.
  • Immutable Date Processing - Enforces a strictly immutable object model for all date and time instances to prevent side-effect mutations.
  • Time Zone Management - Manages global timestamps and wall-clock time using IANA time zone resolution and daylight saving transition logic.
  • Time Zone Conversions - Transforms absolute instants into local date-time components using regional time zone databases.
  • Wall-Clock Conversions - Transforms global timestamps into human-readable date and time using a specific time zone and calendar.
  • Zoned Date-Time Instantiations - Constructs zoned date-time objects from epoch nanoseconds or strings including time zone information.
  • Calendar-Agnostic Engines - Implements a decoupled internal standard that allows date calculations to work across any supported calendar system.
  • Calendar Date Representations - Creates immutable date objects containing year, month, and day based on a specific calendar.
  • Cross-Calendar Tracking - Maintains a consistent internal ISO representation while allowing dates to be tracked in various calendar systems.
  • Zoned Date-Time Representations - Implements a comprehensive representation of a precise moment combining date, time, time zone, and calendar.
  • Multi-Calendar Conversions - Provides algorithms for transforming dates between diverse cultural calendar systems to ensure consistency.
  • Multi-Calendar Engines - Serves as a multi-calendar date engine for representing and converting dates across various global calendar systems.
  • Epoch-Based Time Representations - Implements high-precision time tracking relative to the Unix epoch using nanoseconds.
  • Temporal Arithmetic - Adds or subtracts a duration from a date-time to calculate a future or past point with precision.
  • DST-Safe Arithmetic - Adds or subtracts durations using rules that maintain consistent clock time across daylight saving.
  • Cross-Calendar Comparisons - Determines the chronological order of two dates regardless of the calendar systems they use.
  • Cross-Calendar Date-Time Comparisons - Determines if one date-time occurs before, after, or at the same time as another across calendars.
  • Date String Serialization - Implements standardized conversion of date and time objects into machine-readable strings for consistent storage.
  • Plain Date Instantiations - Enables the instantiation of plain date objects from numeric components or date strings.
  • Plain Date-Time Instantiations - Provides methods to instantiate date-time objects using numeric components or standardized strings.
  • Plain Time Instantiations - Supports generating time-of-day objects from individual numeric components or ISO 8601 strings.
  • Duration Instantiations - Provides mechanisms to instantiate duration objects using numeric values, property bags, or ISO 8601 strings.
  • Wall-Clock Time Representations - Implements immutable time objects with nanosecond precision for representing hours, minutes, and seconds.
  • Precision Timing APIs - Provides a language-level API for tracking time with nanosecond precision relative to the Unix epoch.
  • Time Zone Converters - Converts date and time objects across different time zones while preserving local time.
  • String Parsing - Converts standardized date and time strings into structured data objects while ignoring extraneous information.
  • Calendar Arithmetic - Calculates date changes using calendar-specific logic for months and years to ensure high accuracy.
  • Date and Time Utilities - Provides a general-purpose library for performing precise arithmetic, finding durations, and calculating date differences.
  • IANA Time Zone Database Integrations - Integrates the IANA time zone database to resolve regional offsets and historical time transitions with precision.
  • Multi-Calendar Systems - Implements a core library for projecting and managing date-times across multiple distinct calendar systems.
  • Temporal Interval Measurements - Calculates durations between two points in time using calendar-aware units like years and months.
  • Instant Instantiations - Allows creating precise moments in time using nanosecond values or ISO 8601 strings.
  • Plain Date-Time Representations - Implements an immutable representation for wall-clock dates and times without time zone information.
  • Calendar System Projections - Enables projecting a date into a different calendar system while maintaining the identical calendar day.
  • Date to Date-Time Conversions - Combines a date with a specific time of day to create a full date-time representation.
  • Chronological Comparisons - Provides logic for comparing and ordering arrays of date-time objects and ISO 8601 strings chronologically.
  • Date Component Modifiers - Modifies specific parts of a date with configurable overflow behavior to handle invalid dates immutably.
  • Localized Formatting - Converts temporal objects into ISO 8601 strings or regionalized formats based on language codes.
  • Temporal Comparison Operators - Provides generic logic to determine the chronological relationship between date, time, or duration objects.
  • System Time Zone Identification - Retrieves the current system time zone as a named IANA identifier.
  • Date to Zoned Date-Time Conversions - Merges a date with a time and a time zone to create a precise wall-clock time.
  • Zone Transition Identification - Identifies the next exact moment a time zone undergoes an offset transition.
  • Zoned Date-Time Comparisons - Determines if one zoned date time occurs before, after, or at the same instant as another.
  • Zoned Time Projections - Projects the current instant into a target time zone to create a zoned date-time instance.
  • Zoned Time Transformations - Transforms a time point into a calendar date and wall-clock time by applying a specific time zone.
  • Zoned-to-Plain Projections - Allows transforming zoned date-time objects into plain calendar date-times while preserving local time.
  • Transition Discovery - Locates the closest past or future UTC offset transitions for the current time zone.
  • Zone Transition Handling - Identifies the next or previous time zone offset change for a specific zoned date-time.
  • Zoned Duration Calculations - Computes elapsed time between zoned date-times as hybrid durations of calendar days.
  • Calendar Date Manipulators - Determines specific dates based on calendar rules, such as finding the nth weekday of a month.
  • Calendar-Aware Date Differences - Computes the number of years, months, or days between two dates using calendar-aware logic.
  • Overflow Strategies - Handles invalid calendar date inputs using specific overflow and clamping strategies.
  • Zoned Calendar Projections - Creates new zoned date-times by projecting the current instant into a different target calendar.
  • Calendar Operations - Offers operations to retrieve calendar-specific metadata, including leap year status and days per month.
  • Custom Calendar Extensions - Allows the implementation of custom calendar systems and astronomical ranges beyond the built-in standards.
  • Month Boundary Calculations - Determines month boundaries and the number of days in a month based on the active calendar system.
  • Time Offset Serialization - Converts exact time instances into strings including offsets or time zone names for data transport.
  • Date-Time Field Modifications - Creates a new date-time object by overriding specific components or replacing the entire clock time.
  • Temporal Rounding - Adjusts date or time objects to the nearest specified unit boundaries.
  • Date and Time Combinations - Merges separate calendar date and wall-clock time values into a single combined date-time instance.
  • Duration Calculations - Calculates the precise duration elapsed between two instants.
  • Duration Rounding - Provides utilities to snap durations to specific increments using configurable rounding modes.
  • Duration Balancing - Resolves the ambiguity of variable-length months and years using reference dates for precise duration balancing.
  • Duration Comparisons - Determines if one duration is shorter, longer, or equal to another using an optional reference date.
  • DST Ambiguity Resolutions - Provides mechanisms to resolve time gaps and overlaps occurring during daylight saving transitions.
  • Date Comparison Utilities - Verifies if two date objects represent the same calendar date.
  • Date String Formatters - Converts date objects into standardized RFC 9557 strings or language-sensitive localized formats.
  • Date Localizations - Produces localized string representations of date and time data tailored to a specific locale.
  • Date Difference Calculators - Computes the elapsed time between two dates as a duration with rounding and custom precision.
  • Duration Arithmetic Operations - Adds or subtracts durations to produce a new balanced duration object with overflow rules.
  • Clock-Wrap Arithmetic - Adds or subtracts durations to time points with automatic 24-hour clock wrapping.
  • Date Duration Modifications - Adds or subtracts a specified duration of time to a date with clamping options.
  • Duration Balancing - Resolves variable-length duration units using reference dates and time zone offsets.
  • System Date Retrievals - Provides utilities to fetch the current date and time according to system settings and optional time zones.
  • Time Interval Manipulations - Manages elapsed time intervals, including unit conversion and negation.
  • UTC Offset Calculations - Calculates the UTC offset for a specific time zone at a given instant.
  • Date Overflow Strategies - Includes configurable strategies to resolve invalid dates, such as clamping to the nearest valid day.
  • Date-Time Equality Verifications - Verifies if two date-time objects represent the same point in time and use the same calendar.
  • Month-Day to Date Conversions - Transforms a month-day object into a full calendar date by associating it with a specific year.
  • System Time Retrievals - Captures the current system time with nanosecond accuracy independently of any calendar system.
  • Temporal Representation Transformations - Provides capabilities to transform date and time objects between different representations, such as converting zoned date-times to plain dates.
  • Wall-Clock Time Equality - Verifies if two time objects represent the exact same wall-clock time.
  • Date-Time Duration Computations - Computes the elapsed time between two date-times with options for rounding and unit specification.
  • ISO 8601 Standards - Provides full implementation of ISO 8601 standards for serializing complex date and time objects.
  • Duration Serialization Formats - Serializes duration values into ISO 8601 strings or human-readable localized representations.
  • Month-Year Types - Provides immutable representations of a specific year and month combination without a day.
  • Field Overrides - Provides the ability to create new year-month objects by overriding specific fields.
  • Year-Month Arithmetic - Performs addition and subtraction of months and years to calculate future year-months.
  • Year-Month Interval Calculations - Computes the elapsed time between two year-months as a duration with rounding options.
  • Date-Time Format Strings - Produces unambiguous RFC 9557 strings or locale-aware representations for date-time human readability.
  • RFC 9557 Representations - Produces unambiguous RFC 9557 string representations of dates with configurable calendar annotations.
  • Zoned Date-Time Formatting - Provides the ability to convert zoned date-time objects into localized or RFC 9557 compliant strings.
  • Temporal Difference Calculations - Computes durations between date or time objects using since and until operations.
  • Partial Temporal Types - Provides immutable types for partial dates, such as month-day combinations for recurring events.
  • Calendar System Interoperability - Provides logical interoperability by validating and coercing date objects into specific calendar systems.
  • Zoned Field Updating - Allows creating new zoned date-times by overriding specific fields while preserving the original zone.

Star history

Star history chart for tc39/proposal-temporalStar history chart for tc39/proposal-temporal

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Proposal Temporal

Similar open-source projects, ranked by how many features they share with Proposal Temporal.
  • jodaorg/joda-timeJodaOrg avatar

    JodaOrg/joda-time

    4,984View on GitHub↗

    Joda-Time is a Java date and time library and framework used for parsing, representing, and calculating temporal data. It provides a thread-safe temporal API that uses immutable objects to ensure concurrency safety and adheres to the ISO8601 standard. The project is distinguished by its pluggable calendar system, which supports diverse chronologies including Gregorian, Buddhist, Coptic, Ethiopic, and Islamic calendars. It also functions as a time zone management tool, utilizing an internal IANA-based zone database to translate instants and update daylight savings rules independently of the ho

    Javadate-timejavajoda
    View on GitHub↗4,984
  • kotlin/kotlinx-datetimeKotlin avatar

    Kotlin/kotlinx-datetime

    2,775View on GitHub↗

    kotlinx-datetime is a multiplatform library for handling date, time, and calendar operations across different targets. It provides a consistent set of data types for representing instants and local date-times, serving as a standardized API for temporal management. The toolkit focuses on ISO 8601 compliance for parsing and formatting date and time strings. It implements a multiplatform approach to ensure that timestamps and calendar logic remain consistent across all supported platforms. The library covers temporal data modeling, calendar arithmetic for calculating durations and periods, and

    Kotlindatedatetimekotlin
    View on GitHub↗2,775
  • howardhinnant/dateHowardHinnant avatar

    HowardHinnant/date

    3,379View on GitHub↗

    This project is a comprehensive date and time library designed for parsing, formatting, and calculating dates and times with high precision. It provides a multi-calendar system implementation that supports conversions between proleptic Gregorian, Julian, ISO week, and Tabular Islamic calendars. The library is distinguished by its high-precision time clocks and its implementation of the IANA time zone database. It tracks physical time using UTC, TAI, and GPS clocks to account for leap seconds and provides a system for managing geographic time zones and offsets based on IANA data. The capabili

    C++calendardatedatetime
    View on GitHub↗3,379
  • dromara/carbondromara avatar

    dromara/carbon

    5,221View on GitHub↗

    Carbon is a Go library for semantic date and time calculations, formatting, and parsing. It provides a semantic interface to simplify temporal data handling and improve the readability of date and time manipulations. The library is distinguished by its support for multi-calendar date conversion, allowing transformations between Gregorian, Chinese Lunar, Persian, and Hebrew calendar systems. It also includes a localized temporal framework that uses ISO 639-1 codes to format dates and relative time differences across multiple language locales. Additional capabilities cover global time zone man

    Go
    View on GitHub↗5,221
See all 30 alternatives to Proposal Temporal→

Frequently asked questions

What does tc39/proposal-temporal do?

This project is a proposal for a new immutable date and time API in JavaScript. It serves as a precision time-tracking library and a multi-calendar date engine designed to replace the legacy Date object.

What are the main features of tc39/proposal-temporal?

The main features of tc39/proposal-temporal are: Date and Time Libraries, Immutable Temporal APIs, Object Serializers, Date Component Extractors, JavaScript APIs, Temporal Component Extraction, Temporal Serialization, Immutable Date Processing.

What are some open-source alternatives to tc39/proposal-temporal?

Open-source alternatives to tc39/proposal-temporal include: jodaorg/joda-time — Joda-Time is a Java date and time library and framework used for parsing, representing, and calculating temporal data.… kotlin/kotlinx-datetime — kotlinx-datetime is a multiplatform library for handling date, time, and calendar operations across different targets.… howardhinnant/date — This project is a comprehensive date and time library designed for parsing, formatting, and calculating dates and… dromara/carbon — Carbon is a Go library for semantic date and time calculations, formatting, and parsing. It provides a semantic… python-pendulum/pendulum — Pendulum is a Python datetime library used for creating, manipulating, and formatting date and time objects with… moment/luxon — Luxon is a JavaScript library for parsing, validating, manipulating, and formatting dates and times. It provides a…