Trabajo con fechas en Kotlin: bibliotecas y herramientas para el desarrollo

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

Trabajo con fechas en Kotlin: resumen de bibliotecas y herramientas



El trabajo con fechas y horas es una de las tareas clave en el desarrollo moderno. Kotlin, como lenguaje moderno, ofrece varias formas potentes de gestionar fechas. En este artículo, veremos las principales bibliotecas y enfoques que le ayudarán a trabajar eficazmente con fechas en proyectos Kotlin, incluyendo el desarrollo Android y aplicaciones de servidor.



1. Biblioteca estándar java.time (Java 8+)



A partir de Java 8, los desarrolladores obtuvieron acceso a una API completamente rediseñada para trabajar con fechas: java.time. Dado que Kotlin es totalmente compatible con Java, puede usar esta potente herramienta directamente. Esta es la forma más común para aplicaciones de servidor en Kotlin.



Clases principales:

  • LocalDate — fecha sin hora (año, mes, día)
  • LocalTime — hora sin fecha
  • LocalDateTime — fecha y hora sin zona horaria
  • ZonedDateTime — fecha y hora con zona horaria
  • Instant — momento en el tiempo en UTC
  • Duration y Period — para trabajar con intervalos


import java.time.LocalDateimport java.time.LocalDateTimeimport java.time.format.DateTimeFormatter

fun main() { // Fecha actual val today = LocalDate.now() println("Hoy: $today")

// Creación de una fecha específica val birthDate = LocalDate.of(1990, 5, 15) println("Fecha de nacimiento: $birthDate")

// Formateo val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy") val formatted = today.format(formatter) println("Fecha formateada: $formatted")

// Análisis de cadena val parsedDate = LocalDate.parse("2024-01-01") println("Fecha analizada: $parsedDate")

// Trabajo con fecha y hora val now = LocalDateTime.now() println("Ahora: $now")}


2. kotlinx-datetime — biblioteca oficial de JetBrains



Para proyectos que usan Kotlin Multiplatform, la biblioteca estándar kotlinx-datetime es la mejor opción. Proporciona una API unificada para todas las plataformas (JVM, JS, Native, Android).



Configuración (build.gradle.kts):

dependencies {    implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1")}


Funcionalidades principales:

  • Instant — momento en el tiempo
  • LocalDateTime — fecha y hora local
  • LocalDate — fecha local
  • LocalTime — hora local
  • TimeZone — zonas horarias
  • DateTimePeriod — período de tiempo


import kotlinx.datetime.*

fun main() { // Fecha y hora actual val now = Clock.System.now() println("Momento actual: $now")

// Conversión a componentes locales val localDateTime = now.toLocalDateTime(TimeZone.currentSystemDefault()) println("Hora local: $localDateTime")

// Creación de fecha val date = LocalDate(2024, 12, 25) println("Fecha: $date")

// Formateo val formatted = localDateTime.toString() println("Representación en cadena: $formatted")

// Análisis val parsed = Instant.parse("2024-01-01T12:00:00Z") println("Instant analizado: $parsed")

// Trabajo con zonas horarias val moscowTime = now.toLocalDateTime(TimeZone.of("Europe/Moscow")) println("Hora de Moscú: $moscowTime")}


3. ThreeTenABP — para compatibilidad inversa en Android



Si su aplicación es compatible con Android API inferior a 26 (Android 8.0), no puede usar java.time directamente. En este caso, la biblioteca ThreeTenABP<

Recommendations