Swift Academy · Lección

Formato según la configuración regional

Formatee números, fechas y divisas según la configuración regional.

Lección 3 de 413 pasos

Formato según la configuración regional es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.

Los números no son universales

El número un millón doscientos mil con cincuenta centésimas se representa como 1,200,000.50 en Estados Unidos, 1.200.000,50 en Alemania y 12,00,000.50 en India. Escribir directamente los separadores o formatos hace que fallen en la mayor parte del mundo. La API FormatStyle de Swift gestiona esto correctamente según la configuración regional.

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

El punto de entrada formatted()

La mayoría de los tipos estándar —números, fechas, mediciones y listas— tienen un método formatted(). Sin argumentos, utiliza valores predeterminados adecuados según la configuración regional; pase un estilo para personalizarlo.

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

Estilos numéricos

.number es la opción principal. Puede configurar la agrupación, la longitud de la parte fraccionaria, el redondeo y la visualización del signo de forma encadenada. La configuración regional sigue controlando los caracteres separadores concretos.

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

Formato de moneda

Para representar dinero, .currency(code:) coloca correctamente el símbolo, la agrupación y los decimales según la configuración regional. La misma cantidad se muestra como $1,200.00 o 1.200,00 €€ según la región del usuario; nunca cree cadenas de moneda manualmente.

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

Formato de porcentajes

.percent multiplica por 100 y añade el signo de porcentaje de la configuración regional, además de gestionar las reglas de espaciado que algunos idiomas requieren entre el número y el símbolo.

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

Anular la configuración regional

De forma predeterminada, el formato utiliza Locale.current. Para forzar una configuración regional específica —para realizar pruebas o mostrar un valor en una región fija— encadene .locale(_:) a cualquier estilo.

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

Formato de fechas

Las fechas tienen sus propios estilos. .dateTime permite combinar los campos que desea (año, mes, día y hora), y el sistema los ordena según la configuración regional: mes-día-año en Estados Unidos y día-mes-año en gran parte de Europa.

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

Fechas relativas

RelativeDateTimeFormatter y el estilo .relative producen frases como hace 2 horas o dentro de 3 días, completamente traducidas. Son ideales para feeds y marcas de tiempo.

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

Mediciones y unidades

Measurement formatea cantidades físicas y puede convertir unidades. La configuración regional decide si se muestran kilómetros o millas, y el estilo localiza el propio nombre de la unidad.

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

Listas y nombres

Incluso la unión de elementos respeta el idioma. .list(type:) produce «manzanas, naranjas y peras» en inglés y utiliza la conjunción y los separadores correctos en otros idiomas; evite insertar manualmente comas y la palabra «y».

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

Volver a analizar

Los FormatStyles son reversibles. La estrategia parseStrategy de un estilo (o la inicialización de un valor a partir de una cadena con el estilo) convierte el texto localizado de nuevo en un número o una fecha, respetando las mismas reglas de configuración regional.

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

Comprobación rápida

Recuerde cuál es la herramienta adecuada para representar dinero.

Resumen

Aprendió a formatear según la configuración regional mediante FormatStyle:

  • formatted() proporciona valores predeterminados correctos para la configuración regional; pase un estilo para personalizarlos.
  • .number, .currency(code:), .percent, .dateTime, .relative, .measurement y .list cubren la mayoría de las necesidades.
  • Encadene .locale(_:) para anular la región; los estilos también pueden volver a analizar el texto.
  • Nunca cree manualmente separadores, símbolos de moneda ni órdenes de fecha.
Gratis para empezar

Aprende Swift con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
122
Lecciones
409

Preguntas frecuentes

¿La lección «Formato según la configuración regional» es gratis?

Sí — el texto completo de «Formato según la configuración regional» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Formato según la configuración regional»?

Formatee números, fechas y divisas según la configuración regional. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Swift Academy?

No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Formato según la configuración regional»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Swift Academy?

Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Catálogos de cadenas y cadenas localizadas
  2. Pluralización y Stringsdict
  3. Formato según la configuración regional
  4. De derecha a izquierda y dirección del diseño
← Volver a Swift Academy