"Recordé que quería contarles un poco sobre cómo trabajar con fechas".

"Ya me dijiste que Java tiene la clase Fecha y puedo usar esa clase para trabajar con fechas".

"Hmm. Bueno, la clase Fecha ha estado desactualizada por un tiempo".

"Ahora se recomienda usar en su lugar la clase Calendar, que tiene un método getTime() que devuelve la fecha actual".

"Este es un objeto Calendario que generalmente se crea:"

Crear un objeto Calendario
Calendar cal = Calendar.getInstance();

"Cuando llama a este método, se crea el calendario correcto según la configuración de su computadora".

"¿El calendario 'correcto'? ¿Eso significa que hay varios?"

"Sí. Bueno, sería más exacto decir 'relevante'. El hecho es que la Tierra no tiene uno, sino muchos calendarios. Casi todos ellos están asociados con alguna religión o país".

"El año puede ser diferente dependiendo del país en el que se encuentre".

"Aquí hay ejemplos de los calendarios más comunes".

Clase de calendario Nombre del calendario
Calendario Gregoriano calendario gregoriano cristiano
BudistaCalendario calendario budista
JaponésImperialCalendario Calendario imperial japonés

"También está el calendario chino, el calendario islámico y muchos más".

"Veo."

"Para obtener la fecha actual, debe escribir un código como este:"

Obtener la hora actual
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();

"La clase Calendar tiene muchos métodos que le permiten obtener rápidamente cualquier información sobre una fecha y hora".

Código Comentarios
Calendar calendar = Calendar.getInstance();

int era = calendar.get(Calendar.ERA);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
era 
año 
mes 
día del mes

día de la semana (lunes, martes, miércoles, …)
hora 
minuto 
segundo

"A veces, realmente solo necesita obtener una parte de la información disponible. Por ejemplo, el año actual o el día de la semana".

"Pero a veces simplemente necesitas mostrar la fecha en el formato correcto".

"Por ejemplo, en el archivo de registro o en otro lugar".

"O crea un formato que el usuario pueda personalizar. ¿Qué haces entonces?"

"También hay clases especiales para esto. La clase SimpleDateFormat se adapta perfectamente a la tarea que describiste:"

Cómo mostrar una fecha en el formato deseado
Calendar calendar = Calendar.getInstance();

DateFormat formatter = new SimpleDateFormat("MM-DD-YY");

String message = formatter.format(calendar.getTime());

"Ah. Lo recuerdo. Ya me explicaste algo sobre SimpleDateFormat , pero honestamente no recuerdo mucho".

"Todo es muy simple. Creas un objeto SimpleDateFormat y le pasas el patrón de fecha que deseas obtener. Luego llamas al método de formato y te da la fecha pasada en la forma deseada".

"Suena interesante. Me gustaría más detalles".

"Aquí tienes. Los detalles. Estas son algunas de las letras que se pueden usar en el patrón de fecha:"

Carta Descripción
GRAMO Reemplazado por la era (AD o BC)
y Reemplazado por el año
METRO Reemplazado por el mes
w Número de semana en el año
W Número de semana en el mes
D Número de día en el año
d Día del mes
F Día de la semana en el mes
mi Día de la semana
a AM/PM (antes o después del mediodía)
H Hora en formato de 24 horas (0-23)
k Hora en formato de 24 horas (1-24)
k Hora en formato de 12 horas (0-11)
h Hora en formato de 12 horas (1-12)
metro Minutos
s Segundos
S milisegundos
z Zona horaria, con este formato: hora estándar del Pacífico, PST
Z Zona horaria, formateada así: -0800/td>

"¡Genial! Eso es casi todo lo que necesitas".

"Todavía hay algunos matices relacionados con la repetición de estas letras".

"Si escribes YY, obtendrás los dos últimos dígitos del año. Si escribes YYYY, obtendrás los cuatro dígitos del año".

"También hay cierta complejidad con los meses. MM es el número del mes. MMM es una abreviatura de tres letras del mes, es decir, enero, febrero, marzo, abril, mayo, etc. MMMM representa el nombre completo del mes ."

"También puede mostrar el día completo de la semana (usando EEEE) o solo las dos primeras letras (usando EE)".

"Gracias, Rishi. Esta clase SimpleDateFormat realmente es útil. Ahora lo sé".

"¡Disfruta usándolo! ¡Y buena suerte!"