Swift:
Een datum uit een string parsen
Hoe:
Swift maakt het parseren van data vrij eenvoudig met DateFormatter
. Hier is een snel voorbeeld:
import Foundation
let dateString = "2023-04-01"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
if let parsedDate = dateFormatter.date(from: dateString) {
print("Geparste datum: \(parsedDate)")
} else {
print("Datum parseren mislukt.")
}
Een voorbeelduitvoer kan er zo uitzien, afhankelijk van je tijdzone:
Geparste datum: 2023-03-31 22:00:00 +0000
Onthoud, de uitvoer is standaard in UTC!
Diepere Duik
Al in Objective-C hadden iOS-ontwikkelaars NSDateFormatter
, en het werd overgenomen in Swift als DateFormatter
. Historisch gezien was het omgaan met data een groot probleem vanwege variaties in formaat en tijdzones. Gelukkig standaardiseert DateFormatter
in Swift dit proces.
Hoewel DateFormatter
goed is voor gangbare scenario’s, bestaan er alternatieven zoals de ISO8601DateFormatter
voor ISO 8601 formaten, en je kunt zelfs dieper duiken in de lagere-niveau Cocoa
API met CFDateFormatter
voor meer controle.
Bij het implementeren van een datum-parser, stel altijd de locale
in op posix
(en_US_POSIX
) om onverwacht gedrag vanwege gebruikersinstellingen te vermijden. Wees ook bewust van prestaties. Datumparsing is kostbaar, dus hergebruik je formatter of overweeg DateComponents
te gebruiken voor herhaalde taken.