awesome-repositories.com
Blog
MCP
awesome-repositories.com

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
sdispater avatar

sdispater/pendulum

0
View on GitHub↗
6,668 stars·429 forks·Python·MIT·21 viewspendulum.eustace.io↗

Pendulum

Pendulum is a Python date and time library that provides a simplified interface for date arithmetic, ISO parsing, localization, and timezone management. It serves as a replacement for the standard library datetime module, extending existing classes to maintain compatibility while offering a more intuitive management interface.

The library distinguishes itself through a natural language date formatter that translates time differences into localized strings and a dedicated ISO 8601 date parser. It also includes tools for time-dependent logic testing, allowing the system clock to be mocked or fixed to a specific point in time for consistent software verification.

Broad capabilities include complex date arithmetic, boundary shifting, and timezone conversion with automatic daylight saving time transition handling. It further supports date string parsing, period iteration for generating sequences of dates, and the transformation of date objects into human-readable formats using a token-based system.

Features

  • DateTime Libraries - Provides a comprehensive library for creating, manipulating, and formatting date and time objects in Python.
  • Date Component Modifiers - Modifies specific attributes of a date instance, such as the year or hour, to return a new instance.
  • Daylight Savings Normalizations - Automatically handles daylight saving time transitions and resolves ambiguous local times.
  • Date Object Creators - Generates date and time objects from Unix timestamps, standard library instances, or relative helpers.
  • Date Sequence Generators - Provides utilities for calculating and yielding consecutive series of dates based on specific intervals.
  • Date Arithmetic Logic - Provides intuitive arithmetic methods to add or subtract units like days, weeks, or minutes.
  • Duration Calculations - Determines the length of time between two points, supporting complex units like years and months.
  • Date String Parsers - Offers utilities for automatically converting common date strings into native date objects.
  • Date Validation Utilities - Converts ISO or RFC formatted strings into date objects using strict and flexible parsing rules.
  • Date Comparison Utilities - Allows determining if a date occurs before, after, or at the same time as another using standard operators.
  • Date Formatting Utilities - Provides utilities to transform date objects into strings using custom tokens and ISO formats.
  • Human-Readable Formatters - Converts date objects into user-friendly, natural language strings and localized descriptions.
  • Date Localizations - Translates date and time descriptions into various languages using global or call-specific locale settings.
  • Natural Language Formatters - Translates time differences and dates into localized, human-readable natural language strings.
  • Date Difference Calculators - Computes the duration between two date objects and expresses the result in specific units.
  • Standard Library Extensions - Extends Python's native datetime and timedelta classes to maintain compatibility while simplifying manipulation.
  • Date Range Iterators - Implements utilities for generating sequences of date objects between two points in time.
  • ISO 8601 Parsers - Includes a dedicated parser for transforming ISO 8601 formatted strings into datetime objects.
  • Timezone Management - Implements logic for converting date objects between different timezones while maintaining the same moment.
  • Time Freezing Utilities - Allows setting a constant date and time for all current time requests to ensure consistent test results.
  • Month Boundary Calculations - Adjusts date instances to the start or end of specific periods like months or centuries.
  • Token-Based Formatters - Processes custom date tokens through a translation layer to generate human-readable strings.
  • Relative Time Humanization - Creates human-friendly, localized strings describing the relative distance between two dates.
  • Temporal String Interpolation - Maps time units to localized word sets to convert durations into natural human languages.
  • System Clock Mocks - Intercepts system clock calls to simulate specific dates and times for consistent software testing.
  • Time Simulation Utilities - Intercepts and controls native timing functions to simulate specific points in time for logic testing.
  • Data Manipulation Libraries - Datetime library with timezone support.
  • Date and Time - Predictable and intuitive date and time manipulation.

Star history

Star history chart for sdispater/pendulumStar history chart for sdispater/pendulum

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

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

Projects sharing features with Pendulum

These projects share indexed features with Pendulum. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • python-pendulum/pendulumpython-pendulum avatar

    python-pendulum/pendulum

    6,668View on GitHub↗

    Pendulum is a Python datetime library used for creating, manipulating, and formatting date and time objects with native timezone awareness. It extends the native Python datetime class to maintain compatibility while providing a specialized engine for date arithmetic and timezone management. The library features a dedicated ISO 8601 and RFC 3339 parser that converts standardized strings into date objects without requiring manual format strings. It also includes a relative time generator for producing natural language descriptions of time differences and a timezone management tool that automati

    Python
    View on GitHub↗6,668
  • arrow-py/arrowarrow-py avatar

    arrow-py/arrow

    9,046View on GitHub↗

    Arrow is a Python date and time library that provides a simplified interface for creating and manipulating timestamps by wrapping the Python standard library. It serves as a tool for managing date objects, handling timezone offsets, and performing relative date calculations. The library is distinguished by its ability to humanize timestamps into natural language relative descriptions across multiple locales and parse human-readable time phrases back into precise date objects. It also features a specialized parser for converting ISO 8601 strings and custom formatted text into date objects. Br

    Python
    View on GitHub↗9,046
  • 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
  • formkit/tempoformkit avatar

    formkit/tempo

    2,581View on GitHub↗

    Tempo is a JavaScript date manipulation library that provides a suite of tools for parsing, formatting, and calculating dates and times. It serves as a date arithmetic engine, a locale-aware formatter, and a timezone offset manager for native JavaScript date objects. The library includes a dedicated ISO 8601 date parser for validating and converting standardized strings into date objects. It handles geographic normalization through IANA timezone offset management and utilizes the native Internationalization API for region-specific date formatting. The project covers a broad range of date and

    TypeScriptdatedate-formattingdatetime
    View on GitHub↗2,581
Compare all 30 related projects→

Frequently asked questions

What does sdispater/pendulum do?

Pendulum is a Python date and time library that provides a simplified interface for date arithmetic, ISO parsing, localization, and timezone management. It serves as a replacement for the standard library datetime module, extending existing classes to maintain compatibility while offering a more intuitive management interface.

What are the main features of sdispater/pendulum?

The main features of sdispater/pendulum are: DateTime Libraries, Date Component Modifiers, Daylight Savings Normalizations, Date Object Creators, Date Sequence Generators, Date Arithmetic Logic, Duration Calculations, Date String Parsers.

Which projects share features with sdispater/pendulum?

Projects with overlapping indexed features include: python-pendulum/pendulum — Pendulum is a Python datetime library used for creating, manipulating, and formatting date and time objects with… arrow-py/arrow — Arrow is a Python date and time library that provides a simplified interface for creating and manipulating timestamps… dromara/carbon — Carbon is a Go library for semantic date and time calculations, formatting, and parsing. It provides a semantic… formkit/tempo — Tempo is a JavaScript date manipulation library that provides a suite of tools for parsing, formatting, and… spencermountain/spacetime — Spacetime is a JavaScript timezone library and date manipulation framework designed for parsing, formatting, and… tc39/proposal-temporal — This project is a proposal for a new immutable date and time API in JavaScript. It serves as a precision time-tracking…