Trabajo con fechas en Swift: Foundation y DateFormatter

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es y para qué sirve?

Swift es un lenguaje de programación moderno de Apple para iOS, macOS, watchOS y tvOS. Trabajar con fechas es una de las tareas clave en el desarrollo móvil y de escritorio: desde mostrar la hora en chats hasta calcular plazos en aplicaciones. Swift no tiene una biblioteca separada para fechas; toda la funcionalidad está integrada en el framework Foundation. Este proporciona las clases Date, DateFormatter, Calendar y DateComponents, que permiten crear, formatear, comparar y manipular fechas.

¿Cómo instalar?

Foundation es parte de la biblioteca estándar de Swift, por lo que no se requiere instalación. Simplemente importa el módulo en tu archivo: import Foundation. Para trabajar con fechas en proyectos iOS/macOS (a través de Xcode) no se necesitan dependencias adicionales.

Funciones principales

  • Creación de fecha: Date() — fecha y hora actuales; Date(timeIntervalSinceNow:) — fecha dentro de N segundos.
  • Formateo: DateFormatter — conversión de fecha a cadena (salida localizada) y viceversa.
  • Componentes de fecha: Calendar.current.dateComponents([.year, .month, .day], from: date) — extracción de año, mes, día.
  • Comparación: operadores ==, <, >, así como compare().
  • Manipulaciones: Calendar.current.date(byAdding: .day, value: 7, to: date) — añadir 7 días.

Ejemplo de código en Swift (iOS/macOS)

import Foundation

// Fecha actuallet now = Date()print("Ahora: \\(now)")

// Formateo a cadena localizadalet formatter = DateFormatter()formatter.dateStyle = .longformatter.timeStyle = .shortformatter.locale = Locale(identifier: "es_ES")let formatted = formatter.string(from: now)print("Fecha formateada: \\(formatted)")

// Extracción del día de la semanalet calendar = Calendar.currentlet weekday = calendar.component(.weekday, from: now)print("Día de la semana (1=domingo): \\(weekday)")

// Añadir 3 díasif let futureDate = calendar.date(byAdding: .day, value: 3, to: now) { print("En 3 días: \\(formatter.string(from: futureDate))")}

// Parseo de cadenaformatter.dateFormat = "yyyy-MM-dd"if let parsedDate = formatter.date(from: "2025-12-31") { print("Parseado: \\(parsedDate)")}

¿Cuándo usar?

Usa las herramientas integradas de Foundation siempre que necesites trabajar con fechas en Swift: mostrar la hora en la interfaz de usuario, calcular la diferencia entre fechas, crear calendarios, recordatorios, temporizadores, registro de eventos. Para escenarios complejos (por ejemplo, trabajar con zonas horarias o eventos recurrentes) combina DateComponents y Calendar. Existen bibliotecas de terceros alternativas (por ejemplo, SwiftDate), pero para la mayoría de los proyectos Foundation es suficiente.

Recommendations