Een datum converteren naar een string

Swift:
Een datum converteren naar een string

Hoe te:

Swift gebruikt DateFormatter om Date objecten om te zetten in leesbare strings. Hier is hoe:

import Foundation

let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateString = formatter.string(from: date)
print(dateString) // Uitvoer: "2023-04-05 14:20:35" (of huidige datum en tijd)

Verander de dateFormat om aan te passen hoe je datum eruit ziet:

formatter.dateFormat = "EEEE, MMM d, yyyy"
print(formatter.string(from: date)) // Uitvoer: "woensdag, apr 5, 2023"

Diepgaand

Voor DateFormatter gebruikten Objective-C en vroege versies van Swift NSDateFormatter, wat in wezen hetzelfde is maar dan opnieuw gelabeld. Het sleutelpunt is het kennen van ISO 8601, een gangbare datumnotatie-standaard. Ontwikkelaars moeten een balans zien te vinden tussen aangepaste formaten en gebruikerslocale-instellingen. Waarom? Omdat datums wereldwijd anders worden gelezen. Bijvoorbeeld, Amerikanen gebruiken “MM/dd/yyyy”, terwijl veel Europese landen “dd/MM/yyyy” gebruiken.

Alternatieven? Zeker. Swift biedt ISO8601DateFormatter voor ISO 8601-datums, en DateComponentsFormatter voor tijdsduren in strings, zoals “42 minuten”. Je kunt ook zelf aan de slag met .formatted() in Swift 5.5 en hoger:

let formattedDate = date.formatted(.dateTime.year().month().day().hour().minute().second())
print(formattedDate) // Uitvoer is afhankelijk van je locale-instellingen

Let op: Aangepaste stringcreatie kan leiden tot lokalisatiehoofdpijn en foutgevoelige code. Houd je waar mogelijk aan formatters en standaarden.

Zie Ook

  • Datumopmaak - Apple’s Documentatie over DateFormatter