Skip to content

An ISO 8601 Duration parser for Swift.

License

Notifications You must be signed in to change notification settings

longinius/swift-duration

Repository files navigation

Swift ISO 8601 Duration

An ISO 8601 Duration parser for Swift. Inspired by the Luxon Duration object.

Features

  • Parses ISO 8601 formatted duration strings (e.g. "P1D" or "PT1H15M").
  • Supports Codable protocol.
  • Works with negative durations.
  • Create a DateComponents object from Duration.
  • Extensions for Calendar to use Duration like DateComponents.

Usage

Create a duration from an ISO 8601 string.

let duration = Duration(fromISO: "P2Y4M12DT5H34M48S")

// Duration contains the parsed values
duration.year // 2
duration.month // 4
duration.day // 12
duration.hour // 5
duration.minute // 34
duration.second // 48

Get a DateComponents object from duration.

let dateComponents = duration.dateComponents

Installation

The Swift Package Manager is a tool for managing the distribution of Swift Code. It's integrated into the swift compiler.

To use Duration in your project, simply add this Package as dependency:

dependencies: [
    .package(url: "https://github.com/longinius/swift-duration.git", .upToNextMajor(from: "1.0.0"))
]