# spencermountain/spacetime

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/spencermountain-spacetime).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

4,109 stars · 190 forks · JavaScript · NOASSERTION

## Links

- GitHub: https://github.com/spencermountain/spacetime
- Homepage: http://spacetime.how/
- awesome-repositories: https://awesome-repositories.com/repository/spencermountain-spacetime.md

## Topics

`date-formatting` `daylight-savings` `time-formatting` `timezone` `timezone-conversion` `timezones`

## Description

Spacetime is a JavaScript timezone library and date manipulation framework designed for parsing, formatting, and managing dates across global timezones. It provides an internationalization tool for localizing date components and includes static type definitions for TypeScript environments to ensure type checking and autocompletion.

The project features a plugin system for custom date logic, allowing the injection of specialized methods and behaviors into date objects. This extensibility enables the implementation of project-specific time requirements through prototype-based method extensions.

The library covers a broad range of date and time operations, including calendar math for adding or subtracting time units, date comparison utilities, and component extraction for retrieving calendar details. It handles global timezone management with capabilities for regional offsets, daylight savings calculations, and conversions between different timezones.

The system also provides parsing and validation for ISO strings, epochs, and natural language inputs, alongside formatting tools that transform date objects into human-readable text using regional language settings and custom templates.

## Tags

### Software Engineering & Architecture

- [Timezone Management](https://awesome-repositories.com/f/software-engineering-architecture/timezone-management.md) — Implements comprehensive global timezone management including regional offsets and daylight savings calculations.
- [Timezone Conversions](https://awesome-repositories.com/f/software-engineering-architecture/timezone-management/timezone-conversions.md) — Shifts specific moments from one timezone to another while maintaining the exact absolute point in time. ([source](http://spacetime.how/))
- [Timezone Libraries](https://awesome-repositories.com/f/software-engineering-architecture/timezone-management/timezone-libraries.md) — Serves as a full-featured JavaScript library for managing dates across global timezones with UTC and daylight savings support.
- [Object Rendering](https://awesome-repositories.com/f/software-engineering-architecture/object-schema-definitions/value-objects/monetary/display-formatting/date-time-format-strings/object-rendering.md) — Transforms date and time objects into readable strings using formatting tokens and predefined presets. ([source](https://github.com/spencermountain/spacetime/wiki/Formatting))
- [Timezone Metadata Retrieval](https://awesome-repositories.com/f/software-engineering-architecture/timezone-management/timezone-metadata-retrieval.md) — Allows fetching details such as daylight savings status and UTC offsets for specific global timezones. ([source](https://cdn.jsdelivr.net/gh/spencermountain/spacetime@master/README.md))

### Data & Databases

- [Regional Date Creations](https://awesome-repositories.com/f/data-databases/date-and-time-libraries/regional-date-creations.md) — Automates the handling of date objects for specific regions, including regional offsets and daylight savings. ([source](http://spacetime.how/))
- [Date Manipulation Utilities](https://awesome-repositories.com/f/data-databases/date-manipulation-utilities.md) — Provides tools for performing arithmetic, adding/subtracting time units, and rounding date objects. ([source](https://cdn.jsdelivr.net/gh/spencermountain/spacetime@master/README.md))
- [Date Component Extractors](https://awesome-repositories.com/f/data-databases/date-and-time-libraries/date-component-extractors.md) — Provides utilities to extract specific calendar details such as day names, month names, seasons, and quarters. ([source](http://spacetime.how/))

### Development Tools & Productivity

- [Calendar Date Calculations](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/calendar-date-calculations.md) — Performs calendar math in JavaScript by adding or subtracting time intervals and rounding dates.
- [Date Arithmetic](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/calendar-date-calculations/calendar-operations/date-arithmetic.md) — Provides capabilities for adjusting dates by adding or subtracting hours, days, months, or years. ([source](http://spacetime.how/))
- [Date String Parsers](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/relative-date-formatting/date-string-parsers.md) — Converts ISO strings, epochs, arrays, and natural language inputs into standard date objects. ([source](https://cdn.jsdelivr.net/gh/spencermountain/spacetime@master/README.md))
- [Date Localizations](https://awesome-repositories.com/f/development-tools-productivity/date-formatting-utilities/human-readable-formatters/date-localizations.md) — Transforms raw date objects into human-readable text using custom templates and regional language settings.
- [Date String Parsers](https://awesome-repositories.com/f/development-tools-productivity/date-string-parsers.md) — Provides a system for converting ISO strings, epochs, and natural language inputs into standard date objects.
- [UTC Offset Calculations](https://awesome-repositories.com/f/development-tools-productivity/timezone-configuration/timezone-offset-mappings/utc-offset-calculations.md) — Calculates absolute time differences by applying UTC offsets and daylight savings adjustments to native timestamps.
- [Date Comparison Utilities](https://awesome-repositories.com/f/development-tools-productivity/date-comparison-utilities.md) — Implements utilities for determining if one date occurs before, after, or at the same time as another. ([source](https://cdn.jsdelivr.net/gh/spencermountain/spacetime@master/README.md))
- [Date Formatting Utilities](https://awesome-repositories.com/f/development-tools-productivity/date-formatting-utilities.md) — Ships tools to generate human-readable text from dates using custom templates, presets, and ISO formats. ([source](https://cdn.jsdelivr.net/gh/spencermountain/spacetime@master/README.md))
- [Date Logic Plugins](https://awesome-repositories.com/f/development-tools-productivity/date-logic-plugins.md) — Provides a plugin system to implement project-specific time requirements by adding custom methods to date objects. ([source](https://cdn.jsdelivr.net/gh/spencermountain/spacetime@master/README.md))
- [Temporal String Interpolation](https://awesome-repositories.com/f/development-tools-productivity/localization-support/string-localization/temporal-string-interpolation.md) — Transforms date objects into human-readable text by replacing formatting symbols with calculated calendar values.

### Programming Languages & Runtimes

- [ISO Date Parsers](https://awesome-repositories.com/f/programming-languages-runtimes/string-parsing/iso-date-parsers.md) — Implements regex-based parsing to convert standardized ISO date strings and epochs into internal objects.
- [Localization Lookup Tables](https://awesome-repositories.com/f/programming-languages-runtimes/map-data-structures/localization-lookup-tables.md) — Uses lookup tables to store regional translations for days and months to enable dynamic language switching.
- [Prototype Extensions](https://awesome-repositories.com/f/programming-languages-runtimes/prototype-extensions.md) — Injects custom date behaviors directly into the native JavaScript Date prototype via a plugin system.
- [Date Prototype Extensions](https://awesome-repositories.com/f/programming-languages-runtimes/standard-library-extensions/date-object-wrappers/date-prototype-extensions.md) — Allows adding specialized methods to date objects through a plugin system to implement project-specific behaviors.

### Web Development

- [Internationalized Date Formatting](https://awesome-repositories.com/f/web-development/internationalized-date-formatting.md) — Provides locale-aware date and time formatting to accommodate different languages and regional formats.
