Saltar al contenido principal

📅 Clase Date y Calendar

Manejo de fechas y tiempos en Java.

Clase Date (Legacy)

import java.util.Date;

// Fecha actual
Date ahora = new Date();
System.out.println(ahora);

// Timestamp en milisegundos
long tiempo = ahora.getTime();
Obsoleto

Muchos métodos de Date están deprecados. Preferir Calendar o java.time.

Clase Calendar

import java.util.Calendar;

// Obtener instancia
Calendar cal = Calendar.getInstance();

// Obtener componentes
int año = cal.get(Calendar.YEAR);
int mes = cal.get(Calendar.MONTH); // 0-11
int dia = cal.get(Calendar.DAY_OF_MONTH);
int hora = cal.get(Calendar.HOUR_OF_DAY);
int minuto = cal.get(Calendar.MINUTE);

// Establecer fecha
cal.set(Calendar.YEAR, 2025);
cal.set(Calendar.MONTH, Calendar.JANUARY);
cal.set(Calendar.DAY_OF_MONTH, 15);

// Convertir a Date
Date fecha = cal.getTime();

Operaciones con Calendar

Calendar cal = Calendar.getInstance();

// Sumar días
cal.add(Calendar.DAY_OF_MONTH, 7); // +7 días

// Restar meses
cal.add(Calendar.MONTH, -2); // -2 meses

// Comparar fechas
Calendar otra = Calendar.getInstance();
if (cal.after(otra)) {
System.out.println("cal es posterior");
}

SimpleDateFormat

import java.text.SimpleDateFormat;

Date fecha = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm");
String formateado = sdf.format(fecha);
// "15/01/2025 10:30"

// Parsear String a Date
String texto = "25/12/2025";
SimpleDateFormat parser = new SimpleDateFormat("dd/MM/yyyy");
Date navidad = parser.parse(texto);

Patrones de Formato

PatrónDescripciónEjemplo
ddDía (2 dígitos)15
MMMes (2 dígitos)01
yyyyAño (4 dígitos)2025
HHHora 24h14
mmMinutos30
ssSegundos45
EEEEDía de semanaMiércoles
Java 8+

Para nuevos proyectos, considera usar java.time.LocalDate, LocalDateTime, etc.