Formattazione in base alle impostazioni locali
Formatti numeri, date e valute in base alle impostazioni locali.
Formattazione in base alle impostazioni locali è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 3 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.
I numeri non sono universali
Il numero un milione e duecentomila si scrive 1,200,000.50 negli Stati Uniti, 1.200.000,50 in Germania e 12,00,000.50 in India. Inserire manualmente separatori o formati causa problemi nella maggior parte del mondo. L'API FormatStyle di Swift gestisce correttamente questi casi per ogni locale.
import Foundation
let value = 1_200_000.5
print(value.formatted()) // uses current localeIl punto d'accesso formatted()
La maggior parte dei tipi standard, inclusi numeri, date, misure ed elenchi, dispone di un metodo formatted(). Senza argomenti usa impostazioni predefinite appropriate e dipendenti dalla locale; passate uno stile per personalizzarlo.
import Foundation
let n = 1234.567
print(n.formatted()) // default
print(n.formatted(.number.precision(.fractionLength(2))))Stili per i numeri
.number è lo strumento principale. Potete configurare raggruppamento, numero di cifre frazionarie, arrotondamento e visualizzazione del segno in modo fluente. La locale continua comunque a determinare i caratteri effettivi dei separatori.
import Foundation
let x = 1234.5
print(x.formatted(
.number
.grouping(.automatic)
.precision(.fractionLength(0...2))))Formattazione delle valute
Per gli importi monetari, .currency(code:) posiziona correttamente simbolo, raggruppamento e cifre decimali in base alla locale. Lo stesso importo viene visualizzato come $1,200.00 o 1.200,00 €€ a seconda della regione dell'utente: non create mai manualmente le stringhe delle valute.
import Foundation
let price = 1200.0
print(price.formatted(.currency(code: "USD")))
print(price.formatted(.currency(code: "EUR")))
print(price.formatted(.currency(code: "JPY")))Formattazione delle percentuali
.percent moltiplica per 100 e aggiunge il simbolo di percentuale della locale, gestendo anche le regole di spaziatura che alcune lingue richiedono tra numero e simbolo.
import Foundation
let ratio = 0.875
print(ratio.formatted(.percent))
print(ratio.formatted(.percent.precision(.fractionLength(1))))Sovrascrivere la locale
Per impostazione predefinita, la formattazione usa Locale.current. Per imporre una locale specifica, ad esempio per i test o per mostrare un valore in una regione fissa, concatenate .locale(_:) a qualsiasi stile.
import Foundation
let value = 1234567.89
let german = Locale(identifier: "de_DE")
print(value.formatted(.number.locale(german)))
// 1.234.567,89Formattazione delle date
Le date hanno stili specifici. .dateTime consente di comporre i campi desiderati, come anno, mese, giorno e ora, e il sistema li ordina in base alla locale: mese-giorno-anno negli Stati Uniti, giorno-mese-anno in gran parte dell'Europa.
import Foundation
let now = Date()
print(now.formatted(
.dateTime.year().month().day()))
print(now.formatted(date: .long, time: .shortened))Date relative
RelativeDateTimeFormatter e lo stile .relative producono frasi come 2 ore fa o tra 3 giorni, completamente tradotte. Sono ideali per feed e indicatori temporali.
import Foundation
let past = Date().addingTimeInterval(-3600)
let text = past.formatted(
.relative(presentation: .named))
print(text) // e.g. "1 hour ago"Misure e unità
Measurement formatta le grandezze fisiche e può convertire le unità. La locale decide se visualizzare chilometri o miglia, mentre lo stile localizza anche il nome dell'unità.
import Foundation
let distance = Measurement(value: 5, unit: UnitLength.kilometers)
print(distance.formatted())
print(distance.formatted(
.measurement(width: .wide)))Elenchi e nomi
Anche l'unione degli elementi rispetta la lingua. .list(type:) produce «mele, arance e pere» in italiano e usa la congiunzione e i separatori corretti nelle altre lingue: evitate di inserire manualmente virgole e congiunzioni.
import Foundation
let fruits = ["apples", "oranges", "pears"]
print(fruits.formatted(.list(type: .and)))
print(fruits.formatted(.list(type: .or)))Analizzare nuovamente
Gli oggetti FormatStyles sono reversibili. La proprietà parseStrategy di uno stile, oppure l'inizializzazione di un valore da una stringa con quello stile, converte il testo localizzato nuovamente in un numero o in una data, rispettando le stesse regole della locale.
import Foundation
let style = Decimal.FormatStyle.Currency(code: "USD")
let amount = try? Decimal("$1,234.50", format: style)
print(amount ?? 0)Verifica rapida
Ricordate qual è lo strumento corretto per gli importi monetari.
Riepilogo
Avete imparato a formattare i valori in base alla locale tramite FormatStyle:
formatted()fornisce impostazioni predefinite corrette per la locale; passate uno stile per personalizzarle..number,.currency(code:),.percent,.dateTime,.relative,.measuremente.listcoprono la maggior parte delle esigenze.- Concatenate
.locale(_:)per sovrascrivere la regione; gli stili possono anche analizzare nuovamente il testo. - Non create mai manualmente separatori, simboli di valuta o ordini delle date.
Domande Frequenti
La lezione «Formattazione in base alle impostazioni locali» è gratuita?
Sì — il testo completo di «Formattazione in base alle 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 «Formattazione in base alle impostazioni locali»?
Formatti numeri, date e valute in base alle 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 3 di 4.
Quanto tempo richiede la lezione «Formattazione in base alle 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
- Cataloghi di stringhe e stringhe localizzate
- Pluralizzazione e Stringsdict
- Formattazione in base alle impostazioni locali
- Da destra a sinistra e direzione del layout