Skip to content

DateUtils

La clase DateUtils proporciona una colección de métodos para manipular y dar formato a fechas, especialmente útiles en aplicaciones que trabajan con fechas en formato ISO (yyyy-mm-dd) y requieren mostrar fechas legibles para el usuario.

class DateUtils {
dateFormat(date: `${string}-${string}-${string}`) {
const [year, month, day] = date.split("-");
return `${day}/${month}/${year}`;
}
dateSpanishFormat(date: `${string}-${string}-${string}` | null) {
return date ? this.dateFormat(date) : "";
}
dateFromISO(isoDate: string) {
const date = new Date(isoDate);
const day = String(date.getDate()).padStart(2, "0");
const month = String(date.getMonth() + 1).padStart(2, "0"); // Month is 0-indexed
const year = date.getFullYear();
return `${day}/${month}/${year}`;
}
timeFromISO(isoTime: string) {
const [hours, minutes, seconds] = isoTime.split(":");
return `${hours}:${minutes}:${seconds.split(".")[0]}`;
}
getYear(isoDate: string | null): string {
if (!isoDate) return "";
const date = new Date(isoDate);
return date.getFullYear().toString();
}
dateWithMonthName(date: string) {
const [, month, day] = date.split("-");
const monthNames = [
"ENERO",
"FEBRERO",
"MARZO",
"ABRIL",
"MAYO",
"JUNIO",
"JULIO",
"AGOSTO",
"SEPTIEMBRE",
"OCTUBRE",
"NOVIEMBRE",
"DICIEMBRE",
];
const monthIndex = Number(month);
if (!monthIndex || monthIndex < 1 || monthIndex > 12) return "";
return `${parseInt(day)} ${monthNames[monthIndex - 1]}`;
}
}
export const dateUtils = new DateUtils();
export const dateUtils = new DateUtils();
// Convierte una fecha en formato "yyyy-mm-dd" a "dd/mm/yyyy".
dateUtils.dateFormat("2025-05-22"); // "22/05/2025"
// Convierte una fecha en formato "yyyy-mm-dd" o null a "dd/mm/yyyy",
// devolviendo una cadena vacía si el valor es null.
dateUtils.dateSpanishFormat("2025-12-01"); // "01/12/2025"
dateUtils.dateSpanishFormat(null); // ""
// Convierte una fecha en formato ISO (yyyy-mm-ddTHH:MM:SSZ) a "dd/mm/yyyy".
dateUtils.dateFromISO("2025-05-22T14:30:00Z"); // "22/05/2025"
//Extrae la hora (hh:mm:ss) de un string ISO de tiempo como "14:30:00.000Z".
dateUtils.timeFromISO("14:30:00.000Z"); // "14:30:00"
//Devuelve el año ("yyyy") de una fecha ISO o una cadena vacía si el valor es null.
dateUtils.getYear("2025-05-22"); // "2025"
dateUtils.getYear(null); // ""
//Convierte una fecha en formato "yyyy-mm-dd" a un formato con nombre de mes en español, en mayúsculas, como "22 MAYO".
dateUtils.dateWithMonthName("2025-05-22"); // "22 MAYO"