0Pricing
Swift Academy · Lección

Zonas horarias y configuraciones regionales

Gestione correctamente las diferencias de zonas y configuraciones regionales.

Zonas horarias y configuraciones regionales es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 4 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.

Zonas horarias y configuraciones regionales

El mismo instante de Date se muestra de forma diferente en distintas partes del mundo. TimeZone y Locale determinan cómo se interpreta y se muestra.

Fundamentos de TimeZone

Un TimeZone representa un desfase respecto a UTC, además de las reglas del horario de verano. TimeZone.current es la zona del dispositivo.

import Foundation

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

Crear una zona específica

Construya una zona con nombre mediante TimeZone(identifier:), por ejemplo «America/New_York» o «Europe/Istanbul».

import Foundation

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

Desfases respecto a GMT

secondsFromGMT(for:) proporciona el desfase actual, que puede cambiar a lo largo del año debido al horario de verano.

import Foundation

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

Las zonas afectan a los calendarios

Establezca timeZone en un calendario para que los cálculos de días y horas usen esa región en lugar de la configuración predeterminada 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)")

Zonas en el formato

Un Date.FormatStyle puede incluir una zona horaria específica para que el resultado refleje esa región independientemente de la configuración del dispositivo.

import Foundation

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

Fundamentos de Locale

Un Locale recoge el idioma y las convenciones regionales: nombres de los meses, primer día de la semana y orden de los números y las fechas.

import Foundation

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

Crear un Locale

Cree una configuración regional específica mediante Locale(identifier:), como «fr_FR» o «tr_TR».

import Foundation

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

Locale cambia el resultado

Aplicar una configuración regional a un estilo de formato cambia los nombres de los meses y su orden. La misma fecha se lee de forma diferente en cada idioma.

import Foundation

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

Locale y Calendar juntos

Locale también afecta al primer día de la semana y a la numeración de las semanas del calendario. Combine zona, configuración regional y calendario para obtener resultados totalmente correctos.

import Foundation

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

Almacenar en UTC y mostrar en local

Práctica recomendada: almacene y transmita las fechas en UTC y conviértalas a la zona y configuración regional del usuario solo para mostrarlas.

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

Comprobación rápida

¿Cuál es la forma recomendada de gestionar fechas entre distintas regiones?

Resumen

TimeZone establece el desfase respecto a UTC y las reglas del horario de verano, mientras que Locale controla el idioma y el formato regional. Ambos se asocian a calendarios y estilos de formato. Almacene las fechas en UTC y conviértalas a la zona y configuración regional locales solo al mostrarlas. Con esto termina el curso sobre fechas y calendarios.

Preguntas frecuentes

¿La lección «Zonas horarias y configuraciones regionales» es gratis?

Sí — el texto completo de «Zonas horarias y configuraciones regionales» 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 «Zonas horarias y configuraciones regionales»?

Gestione correctamente las diferencias de zonas y configuraciones regionales. 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 4 de 4.

¿Cuánto tiempo toma la lección «Zonas horarias y configuraciones regionales»?

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. El tipo Date e intervalos de tiempo
  2. Calendar y DateComponents
  3. Formato de fechas
  4. Zonas horarias y configuraciones regionales
← Volver a Swift Academy