GT ClassMethodsFormatting

formatDateTime

Referencia de API del método formatDateTime para formatear fechas y horas según las convenciones de la locale

Descripción general

El método formatDateTime da formato a fechas y horas según las convenciones de la locale utilizando la Internationalization API. Gestiona automáticamente los formatos de fecha y hora, los calendarios y las zonas horarias en función de la locale de destino.

const gt = new GT({ targetLocale: 'de-DE' });

const formatted = gt.formatDateTime(new Date(), {
  dateStyle: 'medium',
  timeStyle: 'short'
});
// Devuelve: "25.09.2025, 18:06" (formato de fecha y hora en alemán)

Referencia

Parámetros

NombreTipoDescripción
dateDateObjeto Date a formatear
options?DateTimeFormatOptionsConfiguración de formato opcional

DateTimeFormatOptions

Amplía Intl.DateTimeFormatOptions con una especificación de locale adicional:

NameTypeDescription
locales?string | string[]Sobrescribe las locales para el formateo (por defecto, las locales de la instancia)
localeMatcher?'lookup' | 'best fit'Algoritmo de emparejamiento de locale (predeterminado: 'best fit')
dateStyle?'full' | 'long' | 'medium' | 'short'Estilo general de formato de fecha
timeStyle?'full' | 'long' | 'medium' | 'short'Estilo general de formato de hora
weekday?'long' | 'short' | 'narrow'Representación del día de la semana
era?'long' | 'short' | 'narrow'Representación de la era
year?'numeric' | '2-digit'Representación del año
month?'numeric' | '2-digit' | 'long' | 'short' | 'narrow'Representación del mes
day?'numeric' | '2-digit'Representación del día
dayPeriod?'narrow' | 'short' | 'long'Formato del periodo del día (mañana, tarde, etc.)
hour?'numeric' | '2-digit'Representación de la hora
minute?'numeric' | '2-digit'Representación del minuto
second?'numeric' | '2-digit'Representación del segundo
fractionalSecondDigits?1 | 2 | 3Número de dígitos de los segundos fraccionarios
timeZoneName?'long' | 'short' | 'longOffset' | 'shortOffset' | 'longGeneric' | 'shortGeneric'Formato del nombre de la zona horaria
timeZone?stringIdentificador de zona horaria IANA
hour12?booleanIndica si se usa el formato de 12 horas
hourCycle?'h11' | 'h12' | 'h23' | 'h24'Preferencia de ciclo horario
calendar?stringSistema de calendario a utilizar
numberingSystem?stringSistema de numeración para los dígitos
formatMatcher?'basic' | 'best fit'Algoritmo de emparejamiento de formato (predeterminado: 'best fit')

Devuelve

string - La fecha y la hora con formato según las convenciones del locale.


Ejemplos

Formatos básicos de fecha y hora

import { GT } from 'generaltranslation';

const gt = new GT({ targetLocale: 'en-US' });
const date = new Date('2024-03-14T14:30:45Z');

// Formato básico de fecha (usa las options predeterminadas)
console.log(gt.formatDateTime(date));
// Resultado: "3/14/2024"

// Formato para la configuración regional alemana
console.log(gt.formatDateTime(date, { locales: 'de-DE' }));
// Resultado: "14.3.2024"

// Formato para la configuración regional japonesa
console.log(gt.formatDateTime(date, { locales: 'ja-JP' }));
// Resultado: "2024/3/14"

Estilos de fecha y hora

const date = new Date('2024-03-14T14:30:45Z');

// Formato de fecha completo
console.log(gt.formatDateTime(date, { dateStyle: 'full' }));
// Resultado: "jueves, 14 de marzo de 2024"

// Fecha larga con hora corta
console.log(gt.formatDateTime(date, {
  dateStyle: 'long',
  timeStyle: 'short'
}));
// Resultado: "14 de marzo de 2024 a las 7:30 a. m."

// Componentes de fecha personalizados
console.log(gt.formatDateTime(date, {
  weekday: 'long',
  year: 'numeric',
  month: 'long',
  day: 'numeric'
}));
// Resultado: "jueves, 14 de marzo de 2024"

Zona horaria y formato de hora

const date = new Date('2024-03-14T14:30:45Z');

// Forzar formato de 12 horas
console.log(gt.formatDateTime(date, {
  hour: 'numeric',
  minute: '2-digit',
  hour12: true
}));
// Resultado: "7:30 a. m."

// Forzar formato de 24 horas
console.log(gt.formatDateTime(date, {
  hour: 'numeric',
  minute: '2-digit',
  hour12: false
}));
// Resultado: "07:30"

// Zona horaria específica
console.log(gt.formatDateTime(date, {
  timeZone: 'America/New_York',
  dateStyle: 'medium',
  timeStyle: 'short'
}));
// Resultado: "14 mar 2024, 10:30 a. m."

Notas

  • El formateo de fechas sigue automáticamente las convenciones específicas de la locale
  • El método usa la API nativa del navegador Intl.DateTimeFormat para un rendimiento y una precisión óptimos
  • Las zonas horarias se gestionan correctamente cuando se especifican

Métodos relacionados

Próximos pasos

¿Qué te ha parecido esta guía?

formatDateTime