# matthewyork/datetools

**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/matthewyork-datetools).**

7,186 stars · 941 forks · Objective-C · MIT

## Links

- GitHub: https://github.com/MatthewYork/DateTools
- awesome-repositories: https://awesome-repositories.com/repository/matthewyork-datetools.md

## Description

DateTools is a date manipulation library for iOS applications that provides utilities for date arithmetic, range management, and relative time formatting. It functions as a set of tools to shift dates by specific units, calculate durations between timestamps, and convert dates into localized, human-readable strings.

The library specializes in the analysis of time spans, offering systems to define, compare, and organize overlapping or sequential time periods. It includes logic to determine chronological relationships, such as whether dates fall within specific windows or how different time periods intersect.

Additional capabilities include the extraction of specific calendar components, such as hours or days, and the conversion of timestamps into relative time descriptions based on the current moment.

## Tags

### Data & Databases

- [Date and Time Libraries](https://awesome-repositories.com/f/data-databases/date-and-time-libraries.md) — Provides a comprehensive set of tools for parsing, manipulating, and formatting dates and times in iOS applications. ([source](https://github.com/matthewyork/datetools#readme))
- [Calendar-Aware Date Offsets](https://awesome-repositories.com/f/data-databases/calendar-aware-date-offsets.md) — Adjusts timestamps using calendar rules and specific time units like years, months, or days. ([source](https://github.com/matthewyork/datetools#readme))
- [Chronological Comparisons](https://awesome-repositories.com/f/data-databases/date-and-time-libraries/chronological-comparisons.md) — Provides logic to determine chronological relationships and identical day checks between dates.
- [Date Component Extractors](https://awesome-repositories.com/f/data-databases/date-and-time-libraries/date-component-extractors.md) — Includes utilities for retrieving specific units like year, month, or day from temporal values.
- [Arithmetic Logic](https://awesome-repositories.com/f/data-databases/date-and-time-libraries/date-component-extractors/arithmetic-logic.md) — Calculates new dates by applying offsets to specific time components using a structured unit-based system.
- [Time Period Managements](https://awesome-repositories.com/f/data-databases/date-and-time-libraries/time-period-managements.md) — Analyzes whether two time spans overlap, intersect, or contain one another. ([source](https://github.com/matthewyork/datetools#readme))
- [Date Manipulation Utilities](https://awesome-repositories.com/f/data-databases/date-manipulation-utilities.md) — Implements tools for performing arithmetic and transformations on date and time objects.

### Part of an Awesome List

- [Dates and Time](https://awesome-repositories.com/f/awesome-lists/devtools/dates-and-time.md) — Provides utilities for date manipulation, formatting, and calculating durations between timestamps. ([source](https://github.com/matthewyork/datetools#readme))
- [Date And Time](https://awesome-repositories.com/f/awesome-lists/devtools/date-and-time.md) — Simplified date and time handling in Objective-C.
- [Developer Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/developer-utilities.md) — Efficient date and time manipulation utilities.

### Development Tools & Productivity

- [Relative Date Formatting](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/relative-date-formatting.md) — Converts timestamps into localized, human-readable relative time strings such as '2 hours ago'. ([source](https://github.com/matthewyork/datetools#readme))
- [Date Formatting Utilities](https://awesome-repositories.com/f/development-tools-productivity/date-formatting-utilities.md) — Converts dates into localized strings using predefined styles or custom format patterns. ([source](https://github.com/matthewyork/datetools#readme))
- [Localized Formatters](https://awesome-repositories.com/f/development-tools-productivity/date-formatting-utilities/human-readable-formatters/localized-formatters.md) — Converts date objects into localized, human-readable strings using system locale settings.
- [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 using system locale settings and predefined format styles.

### Mobile Development

- [Sequential Time Period Management](https://awesome-repositories.com/f/mobile-development/sequential-time-period-management.md) — Maintains ordered collections of time spans that automatically adjust subsequent dates when new entries are inserted.

### User Interface & Experience

- [Date Range Restrictions](https://awesome-repositories.com/f/user-interface-experience/date-range-schedulers/date-range-restrictions.md) — Determines if a specific date falls within defined minimum and maximum temporal boundaries. ([source](https://github.com/matthewyork/datetools#readme))
