Configuración regional

Los métodos de conversión de fechas a representación de string o cadena de caracteres, proporcionan la información con nombres en inglés y formatos internacionales.

Si queremos tener las fechas y horas en formatos nacionales, incluso en idioma loca, podríamos procesar las cadenas en formato internacional para traducir o adaptar el formato a la norma local.

Pero también podemos usar los métodos de conversión a cadena en versión regionales de los diferentes métodos toString()

  • toLocaleDateString(): devuelve la cadena de la fecha del día
  • toLocaleTimeString(): devuelve la cadena de la hora
  • toLocaleString(): fecha y hora completas

Todos usan un argumento para indicar como ha de ser la cadena devuelta, configuraciones par el idioma o el orden de dia, mes, año entre otros.

Los argumetnos son opcionales, si no se usan el método funciona como los métodos toString() y similares.

El primer argumento es el habitual del idioma con los código xx-XX, (como es-ES, en-EN) pero la cadena puede completarse con algunos detalles como

  • nu : sistema de numeración
  • ca: calendario
  • hc: ciclo horario (am, pm)

El segundo argumento sobre escribe las opciones del primero y es un objeto con pares claves valor que describen el formato de la cadena

  • dateStyle: formato de fecha full, long, medium, short
  • timeStyle:formato de hora full, long, medium, short
  • calendar: "buddhist", "chinese", " coptic", "ethiopia", "ethiopic", "gregory", " hebrew", "indian", "islamic", "iso8601", " japanese", "persian", "roc"
  • numberingSystem: "arab", "arabext", " bali", "beng", "deva", "fullwide", " gujr", "guru", "hanidec", "khmr", " knda", "laoo", "latn", "limb", "mlym", " mong", "mymr", "orya", "tamldec", " telu", "thai", "tibt".
  • dayPeriod: parte del día "narrow", "short", " long".
  • localeMatcher: algoritmo para concicidencia con la configuración local: "lookup" "best fit";
  • timeZone: zona horaria, por defecto la local, acepta cadenas como Europe/Madrid o America/Mexico_City (puedes consultar en ver IANA)
  • hour12 Usar ciclo de 12 horas: true, false
  • hourCycle: ciclo horario h11, h12, h23, h24. Es sobreescrito por hour12
  • formatMatcher: algoritmo para concicidencia con la configuración local: "lookup" "best fit";

Las siguientes opciones controlan los formatos de presetnación de la fecha y de la hora por sus componentes: dia de la semana, mes, minutos, etc.

  • weekday: Nombre del día de la semana "long""short" "narrow" .
  • era La era, antes (BC) / depués (AD) de cristo: "long" "short" "narrow"
  • year El año "numeric" "2-digit" (e.g., 12)
  • month El mes : "numeric", "2-digit" , "long" , "short" , "narrow"
  • day Día del mes "numeric", "2-digit"
  • hour la hora del día "numeric", "2-digit".
  • minute Los minutos "numeric", "2-digit".
  • second segundos "numeric", "2-digit".
  • fractionalSecondDigits número de dígitos para los milisegundos: 0, 1,2,3,
  • timeZoneName Zona horaria "long", "short"

Parecen muchas opciones pero si te fijas no son tantas las que vas a usar habitualmente. Estas opcines suponen un ahorro de tiempo cuando queires dar un cierto formato a la fecha y para traducirla a un idioma concreto.

También es util si solo queires usar una parte de la fecha como el nombre del dia de la semana o del día del mes

var fecha = new Date();

var día, hoy;

var hora;

var nomMes;

hora = fecha.toLocaleString("es-ES", {hour12: true});

console.log("Hora: "+hora);

nomMes = fecha.toLocaleString("es-ES", {month: "long"});

console.log("Mes : "+nomMes);

dia = fecha.toLocaleString("es-ES", {weekday: "long"});

console.log("Dia de semana: "+dia);

hoy=fecha.toLocaleDateString("es-MX", {month:"long", day:"numeric", year:"2-digit"});

console.log("Hoy es: "+hoy)

Puedes probar todas las opciones para ver los efectos. Estos métodos de transformación de obejtos Date a cadenas son sumamente útiles para la repressentación adecuada de fechas y horas.

scripts