Formatering af datoer
Vis datoer med den moderne formaterings-API.
Formatering af datoer er en gratis Swift Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Swift Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Swift Academy-kurset indeholder 4 lektioner i alt.
Formatering af datoer
Rå Date-værdier kan ikke læses af mennesker. Swifts moderne FormatStyle-API omdanner dem på en enkel måde til lokaliserede strenge.
Metoden formatted()
Hvis du kalder .formatted() på en dato, får du en fornuftig standardstreng til brugerens lokalitet.
import Foundation
let now = Date()
let text = now.formatted()
print("Produced a string: \(!text.isEmpty)")Date.FormatStyle
Send en Date.FormatStyle for at styre, hvilke dele der vises, og vælg dato- og klokkeslætstile uafhængigt af hinanden.
import Foundation
let now = Date()
let s = now.formatted(date: .abbreviated, time: .omitted)
print("Has date only: \(!s.isEmpty)")Dato- og klokkeslætstile
Parametrene date: og time: accepterer .full, .long, .abbreviated, .numeric eller .omitted.
import Foundation
let now = Date()
let full = now.formatted(date: .complete, time: .shortened)
print(!full.isEmpty)Tilpasning med komponenter
Stilen .dateTime lader dig sammensætte præcis de felter, du ønsker, f.eks. .year().month().day().
import Foundation
let now = Date()
let s = now.formatted(.dateTime.year().month().day())
print("Custom fields: \(!s.isEmpty)")Valg af feltbredde
Hver komponent accepterer indstillinger, f.eks. .month(.wide) for det fulde navn eller .month(.twoDigits) for en numerisk form.
import Foundation
let now = Date()
let s = now.formatted(.dateTime.month(.wide).year())
print(!s.isEmpty)Kun klokkeslæt
Sammensæt kun klokkeslætsfelter, når datoen allerede er underforstået, f.eks. .hour().minute().
import Foundation
let now = Date()
let t = now.formatted(.dateTime.hour().minute())
print("Time string: \(!t.isEmpty)")Relativ formatering
RelativeFormatStyle opretter formuleringer som »om 2 timer« eller »i går« i forhold til nu.
import Foundation
let soon = Date().addingTimeInterval(3600)
let rel = soon.formatted(.relative(presentation: .named))
print("Relative phrase produced: \(!rel.isEmpty)")ISO 8601
Brug .formatted(.iso8601) til maskinlæsbare resultater, som er standardformatet til udveksling mellem API'er.
import Foundation
let now = Date()
let iso = now.formatted(.iso8601)
print("Contains T separator: \(iso.contains("T"))")Fortolkning af strenge
Formateringsstile kan bruges begge veje: Du kan fortolke en streng som en Date ved hjælp af den tilsvarende strategi.
import Foundation
let input = "2024-05-30T12:00:00Z"
if let date = try? Date(input, strategy: .iso8601) {
print("Parsed: \(date.timeIntervalSince1970 > 0)")
}FormatStyle kontra DateFormatter
Den nye FormatStyle-API er typesikker og hurtigere at skrive med end den ældre DateFormatter. Foretræk den i ny kode.
import Foundation
let now = Date()
print(now.formatted(date: .long, time: .omitted).isEmpty == false)Hurtigt tjek
Hvilket kald viser datoen, men udelader klokkeslættet?
Opsummering
FormatStyle-API'et formaterer datoer med .formatted(), konfigurerbare date:/time:-stile, sammensættelige .dateTime-felter, relative formuleringer og ISO 8601. Det kan bruges begge veje til fortolkning og foretrækkes frem for DateFormatter. Næste emne er tidszoner og lokaliteter.
Lær Swift med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 122
- Lektioner
- 409
Ofte stillede spørgsmål
Er lektionen “Formatering af datoer” gratis?
Ja — alle 3 lektioner i læringssporet Swift Academy, inklusive “Formatering af datoer”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Swift Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Formatering af datoer”?
Vis datoer med den moderne formaterings-API. Du øver dig i Swift Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Swift Academy?
Der kræves ingen tidligere erfaring. Swift Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.
Hvor lang tid tager lektionen “Formatering af datoer”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Swift Academy-lektion?
Ja. Alle Swift Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Typen Date og tidsintervaller
- Calendar og DateComponents
- Formatering af datoer
- Tidszoner og locales