Swift Academy · Lekcja

Formatowanie zależne od ustawień regionalnych

Formatowanie liczb, dat i walut zgodnie z ustawieniami regionalnymi.

Lekcja 3 z 413 kroki

Formatowanie zależne od ustawień regionalnych to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.

Liczby nie są uniwersalne

Liczba jeden milion dwieście tysięcy i pięćdziesiąt setnych jest zapisywana jako 1,200,000.50 w Stanach Zjednoczonych, 1.200.000,50 w Niemczech oraz 12,00,000.50 w Indiach. Wpisywanie na stałe separatorów lub formatów powoduje błędy w większości krajów. Interfejs API FormatStyle języka Swift obsługuje to poprawnie dla każdej lokalizacji.

import Foundation
let value = 1_200_000.5
print(value.formatted()) // uses current locale

Punkt wejścia formatted()

Większość standardowych typów — liczb, dat, jednostek miar i list — ma metodę formatted(). Bez argumentów używa ona rozsądnych wartości domyślnych uwzględniających lokalizację; aby dostosować format, przekaż styl.

import Foundation
let n = 1234.567
print(n.formatted())                      // default
print(n.formatted(.number.precision(.fractionLength(2))))

Style liczbowe

.number to podstawowy styl. Można w nim płynnie konfigurować grupowanie cyfr, długość części ułamkowej, zaokrąglanie i wyświetlanie znaku. Konkretne znaki separatorów nadal określa lokalizacja.

import Foundation
let x = 1234.5
print(x.formatted(
    .number
    .grouping(.automatic)
    .precision(.fractionLength(0...2))))

Formatowanie walut

W przypadku kwot .currency(code:) poprawnie umieszcza symbol, grupowanie i miejsca dziesiętne zgodnie z lokalizacją. Ta sama kwota może być wyświetlona jako $1,200.00 lub 1.200,00 €€ zależnie od regionu użytkownika — nigdy nie twórz ciągów walutowych ręcznie.

import Foundation
let price = 1200.0
print(price.formatted(.currency(code: "USD")))
print(price.formatted(.currency(code: "EUR")))
print(price.formatted(.currency(code: "JPY")))

Formatowanie procentów

.percent mnoży wartość przez 100 i dodaje znak procentu właściwy dla lokalizacji, uwzględniając reguły odstępów wymagane w niektórych językach między liczbą a symbolem.

import Foundation
let ratio = 0.875
print(ratio.formatted(.percent))
print(ratio.formatted(.percent.precision(.fractionLength(1))))

Nadpisywanie lokalizacji

Domyślnie formatowanie korzysta z Locale.current. Aby wymusić konkretną lokalizację — na potrzeby testów lub wyświetlenia wartości w określonym regionie — dołącz .locale(_:) do dowolnego stylu.

import Foundation
let value = 1234567.89
let german = Locale(identifier: "de_DE")
print(value.formatted(.number.locale(german)))
// 1.234.567,89

Formatowanie dat

Daty mają własne style. .dateTime pozwala komponować potrzebne pola — rok, miesiąc, dzień i godzinę — a system układa je zgodnie z lokalizacją: w Stanach Zjednoczonych jest to miesiąc-dzień-rok, a w dużej części Europy dzień-miesiąc-rok.

import Foundation
let now = Date()
print(now.formatted(
    .dateTime.year().month().day()))
print(now.formatted(date: .long, time: .shortened))

Daty względne

RelativeDateTimeFormatter oraz styl .relative tworzą w pełni przetłumaczone wyrażenia, takie jak 2 godziny temu lub za 3 dni. To świetne rozwiązanie dla kanałów aktualności i znaczników czasu.

import Foundation
let past = Date().addingTimeInterval(-3600)
let text = past.formatted(
    .relative(presentation: .named))
print(text) // e.g. "1 hour ago"

Pomiary i jednostki

Measurement formatuje wielkości fizyczne i może konwertować jednostki. Lokalizacja decyduje o tym, czy zostaną wyświetlone kilometry czy mile, a styl lokalizuje również samą nazwę jednostki.

import Foundation
let distance = Measurement(value: 5, unit: UnitLength.kilometers)
print(distance.formatted())
print(distance.formatted(
    .measurement(width: .wide)))

Listy i nazwy

Nawet łączenie elementów uwzględnia język. .list(type:) tworzy w języku angielskim listę apples, oranges, and pears, a w innych językach stosuje poprawny spójnik i separatory — unikaj ręcznego wstawiania przecinków i słowa and.

import Foundation
let fruits = ["apples", "oranges", "pears"]
print(fruits.formatted(.list(type: .and)))
print(fruits.formatted(.list(type: .or)))

Parsowanie z powrotem

FormatStyles są odwracalne. Właściwość parseStrategy stylu — lub inicjalizacja wartości z ciągu za pomocą tego stylu — konwertuje zlokalizowany tekst z powrotem na liczbę lub datę, stosując te same reguły lokalizacji.

import Foundation
let style = Decimal.FormatStyle.Currency(code: "USD")
let amount = try? Decimal("$1,234.50", format: style)
print(amount ?? 0)

Szybki test

Przypomnij sobie, którego narzędzia należy użyć do obsługi kwot.

Podsumowanie

Nauczyłeś się formatować dane z uwzględnieniem lokalizacji za pomocą FormatStyle:

  • formatted() zapewnia wartości domyślne poprawne dla lokalizacji; aby dostosować format, przekaż styl.
  • .number, .currency(code:), .percent, .dateTime, .relative, .measurement i .list pokrywają większość potrzeb.
  • Dołącz .locale(_:), aby nadpisać region; style mogą również parsować tekst z powrotem.
  • Nigdy nie twórz ręcznie separatorów, symboli walut ani kolejności elementów daty.
Bezpłatny start

Ucz się Swift dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
122
Lekcje
409

Często zadawane pytania

Czy lekcja „Formatowanie zależne od ustawień regionalnych” jest bezpłatna?

Tak — pełny tekst „Formatowanie zależne od ustawień regionalnych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Formatowanie zależne od ustawień regionalnych”?

Formatowanie liczb, dat i walut zgodnie z ustawieniami regionalnymi. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Swift Academy?

Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Formatowanie zależne od ustawień regionalnych”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?

Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Katalogi String i zlokalizowane ciągi
  2. Liczba mnoga i Stringsdict
  3. Formatowanie zależne od ustawień regionalnych
  4. Kierunek od prawej do lewej i kierunek układu
← Powrót do Swift Academy