Swift Academy · Lektion

Tidszoner och locales

Hantera skillnader i tidszoner och locales korrekt.

Lektion 4 av 413 steg

Tidszoner och locales är en gratis lektion i Swift Academy på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Swift Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Swift Academy innehåller totalt 4 lektioner.

Tidszoner och språkregioner

Samma Date-ögonblick visas på olika sätt runt om i världen. TimeZone och Locale avgör hur det tolkas och visas.

Grunderna i TimeZone

En TimeZone representerar en förskjutning från UTC samt regler för sommartid. TimeZone.current är enhetens tidszon.

import Foundation

let tz = TimeZone.current
print("Identifier present: \(!tz.identifier.isEmpty)")

Skapa en specifik tidszon

Skapa en namngiven tidszon med TimeZone(identifier:), till exempel ”America/New_York” eller ”Europe/Istanbul”.

import Foundation

if let tokyo = TimeZone(identifier: "Asia/Tokyo") {
    print("Tokyo offset seconds: \(tokyo.secondsFromGMT())")
}

Förskjutningar från GMT

secondsFromGMT(for:) ger den aktuella förskjutningen, som kan ändras under året på grund av sommartid.

import Foundation

let utc = TimeZone(identifier: "UTC")!
print("UTC offset is zero: \(utc.secondsFromGMT() == 0)")

Tidszoner påverkar kalendrar

Ange en kalenders timeZone så att beräkningar av dagar och timmar använder den regionen i stället för enhetens standardzon.

import Foundation

var cal = Calendar.current
cal.timeZone = TimeZone(identifier: "UTC")!
let hour = cal.component(.hour, from: Date())
print("Hour in UTC between 0 and 23: \(0...23 ~= hour)")

Tidszoner vid formatering

En Date.FormatStyle kan innehålla en specifik tidszon, så att resultatet återspeglar den regionen oavsett enhetens inställningar.

import Foundation

let style = Date.FormatStyle(date: .omitted, time: .shortened)
    .timeZone(TimeZone(identifier: "UTC")!)
let s = Date().formatted(style)
print(!s.isEmpty)

Grunderna i Locale

En Locale beskriver språk och regionala konventioner: månadsnamn, veckans första dag samt tal- och datumordning.

import Foundation

let locale = Locale.current
print("Has identifier: \(!locale.identifier.isEmpty)")

Skapa en Locale

Skapa en specifik språkregion med Locale(identifier:), till exempel ”fr_FR” eller ”tr_TR”.

import Foundation

let french = Locale(identifier: "fr_FR")
print("French locale id: \(french.identifier)")

Locale ändrar resultatet

Om du tillämpar en språkregion på en formatstil ändras månadsnamn och ordningsföljd. Samma datum skrivs på olika sätt på olika språk.

import Foundation

let now = Date()
let style = Date.FormatStyle(date: .long, time: .omitted)
    .locale(Locale(identifier: "en_US"))
print(!now.formatted(style).isEmpty)

Locale och Calendar tillsammans

Språkregionen påverkar även kalenderns första veckodag och veckonumrering. Kombinera tidszon, språkregion och kalender för helt korrekta resultat.

import Foundation

var cal = Calendar(identifier: .gregorian)
cal.locale = Locale(identifier: "en_US")
print("First weekday: \(cal.firstWeekday)")

Lagra i UTC, visa lokalt

Bästa praxis är att lagra och överföra datum i UTC och sedan konvertera dem till användarens tidszon och språkregion först vid visning.

import Foundation

let instant = Date()
let utcStyle = Date.FormatStyle(date: .numeric, time: .standard)
    .timeZone(TimeZone(identifier: "UTC")!)
print("UTC display ready: \(!instant.formatted(utcStyle).isEmpty)")

Snabbkontroll

Vilket är det rekommenderade sättet att hantera datum mellan olika regioner?

Sammanfattning

TimeZone anger UTC-förskjutningen och reglerna för sommartid, medan Locale styr språk och regional formatering. Båda kan kopplas till kalendrar och formatstilar. Lagra datum i UTC och konvertera dem till lokal tidszon och språkregion först när de ska visas. Därmed är kursen om datum och kalendrar klar.

Gratis att börja

Lär dig Swift med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
122
Lektioner
409

Vanliga frågor

Är lektionen ”Tidszoner och locales” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Tidszoner och locales”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Swift Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Tidszoner och locales”?

Hantera skillnader i tidszoner och locales korrekt. Ni övar på Swift Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Swift Academy?

Du behöver inga förkunskaper. Utbildningen i Swift Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Tidszoner och locales”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Swift Academy-lektionen?

Ja. Varje Swift Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Typen Date och tidsintervall
  2. Calendar och DateComponents
  3. Formatera datum
  4. Tidszoner och locales
← Tillbaka till Swift Academy