0Pricing
Swift Academy · Lezione

Fusi orari e impostazioni locali

Gestisci correttamente le differenze di fuso e impostazioni locali.

Fusi orari e impostazioni locali è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.

Fusi orari e impostazioni locali

Lo stesso istante Date viene visualizzato in modo diverso nelle varie parti del mondo. TimeZone e Locale determinano come viene interpretato e mostrato.

Nozioni di base sui fusi orari

Un TimeZone rappresenta uno scostamento rispetto a UTC e le regole dell'ora legale. TimeZone.current è il fuso del dispositivo.

import Foundation

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

Creazione di un fuso specifico

Crei un fuso denominato con TimeZone(identifier:), ad esempio «America/New_York» o «Europe/Istanbul».

import Foundation

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

Scostamenti da GMT

secondsFromGMT(for:) restituisce lo scostamento corrente, che può cambiare durante l'anno a causa dell'ora legale.

import Foundation

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

I fusi influenzano i calendari

Imposti il timeZone di un calendario affinché i calcoli relativi a giorni e ore usino quella regione invece del fuso predefinito del dispositivo.

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)")

I fusi nella formattazione

Un Date.FormatStyle può contenere un fuso orario specifico, così l'output riflette quella regione indipendentemente dalle impostazioni del dispositivo.

import Foundation

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

Nozioni di base sulle impostazioni locali

Un Locale rappresenta la lingua e le convenzioni regionali: nomi dei mesi, primo giorno della settimana e ordine dei numeri e delle date.

import Foundation

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

Creazione di una lingua e impostazione locale

Crei una lingua e impostazione locale specifica con Locale(identifier:), ad esempio «fr_FR» o «tr_TR».

import Foundation

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

Le impostazioni locali modificano l'output

L'applicazione di una lingua e impostazione locale a uno stile di formato modifica i nomi dei mesi e l'ordine dei campi. La stessa data viene letta in modo diverso in ogni lingua.

import Foundation

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

Lingua, impostazioni locali e calendario insieme

La lingua e le impostazioni locali influenzano anche il primo giorno della settimana e la numerazione delle settimane del calendario. Combini fuso, impostazioni locali e calendario per ottenere risultati completamente corretti.

import Foundation

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

Memorizzare in UTC, visualizzare in locale

Buona pratica: memorizzi e trasmetta le date in UTC, quindi le converta nel fuso e nelle impostazioni locali dell'utente solo per la visualizzazione.

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)")

Verifica rapida

Qual è il modo consigliato di gestire le date in regioni diverse?

Riepilogo

TimeZone imposta lo scostamento rispetto a UTC e le regole dell'ora legale, mentre Locale controlla la lingua e la formattazione regionale. Entrambi possono essere associati a calendari e stili di formato. Memorizzi le date in UTC e le converta nel fuso e nelle impostazioni locali dell'utente solo quando le visualizza. Con questo si conclude il corso su date e calendari.

Domande Frequenti

La lezione «Fusi orari e impostazioni locali» è gratuita?

Sì — il testo completo di «Fusi orari e impostazioni locali» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.

Cosa imparerò in «Fusi orari e impostazioni locali»?

Gestisci correttamente le differenze di fuso e impostazioni locali. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Swift Academy?

Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Fusi orari e impostazioni locali»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Swift Academy?

Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Il tipo Date e gli intervalli temporali
  2. Calendar e DateComponents
  3. Formattazione delle date
  4. Fusi orari e impostazioni locali
← Torna a Swift Academy