swift-foundation icon indicating copy to clipboard operation
swift-foundation copied to clipboard

ISO8601 date parser that preserves the timezone offset information

Open simonjbeaumont opened this issue 1 year ago • 1 comments

Currently, the ISO8601 date parser, ISO8601DateFormatter.date(from:) parses an ISO8601 date string into a Date.

The parsing strategy correctly handles the timezone offset, but this information is then lost, because Date itself is not timezone aware:

import Foundation
let dateString = "2024-10-08T08:12:34-08:00"
let date = ISO8601DateFormatter().date(from: dateString)!  // timezone offset lost

There are use cases that would like to parse such a string and also know what timezone the date was formatted in. It would be great to have API for returning a timezone-aware value, or even just to return the offset alongside the Date.

simonjbeaumont avatar Oct 08 '24 07:10 simonjbeaumont

Returning a DateComponents would be a great way to address this and unlock other use cases as well.

parkera avatar Oct 08 '24 23:10 parkera