Utility FunctionsFormatting

formatDateTime

Función independiente para formatear fechas y horas según las convenciones del locale

Descripción general

La función independiente formatDateTime da formato a fechas y horas según las convenciones específicas del locale, sin requerir una instancia de GT. Ofrece la misma funcionalidad que el método de la GT class, pero puede usarse de forma independiente.

import { formatDateTime } from 'generaltranslation';

const formatted = formatDateTime(new Date(), {
  locales: 'de-DE',
  dateStyle: 'medium',
  timeStyle: 'short'
});
// Devuelve: "26.09.2025, 17:33"

Referencias

Parámetros

NameTypeDescription
dateDateEl objeto Date que se va a formatear
optionsDateTimeFormatOptions & { locales?: string | string[] }Configuración de formato con locales opcionales

DateTimeFormatOptions

NombreTipoDescripción
locales?string | string[]Locales para el formateo (por defecto, el locale del sistema)
dateStyle?'full' | 'long' | 'medium' | 'short'Estilo general de formateo de la fecha
timeStyle?'full' | 'long' | 'medium' | 'short'Estilo general de formateo de la hora
weekday?'long' | 'short' | 'narrow'Representación del día de la semana
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
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
timeZone?stringIdentificador de zona horaria IANA
hour12?booleanIndica si se usa el formato de 12 horas

Devuelve

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


Ejemplo

Uso básico

import { formatDateTime } from 'generaltranslation';

// Formato básico con locale explícito
console.log(formatDateTime(date, { locales: 'en-US' }));
// Resultado: "3/14/2024"

// Formato en alemán
console.log(formatDateTime(date, { locales: 'de-DE' }));
// Resultado: "14.3.2024"

// Varios fallbacks de locale
console.log(formatDateTime(date, { 
  locales: ['ja-JP', 'en-US'] 
}));
// Resultado: "2024/3/14" (formato japonés)

Estilos de fecha y hora

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

// Formato de fecha completo
console.log(formatDateTime(date, {
  locales: 'en-US',
  dateStyle: 'full'
}));
// Resultado: "Thursday, March 14, 2024"

// Fecha larga con hora corta
console.log(formatDateTime(date, {
  locales: 'fr-FR',
  dateStyle: 'long',
  timeStyle: 'short'
}));
// Resultado: "14 mars 2024 à 07:30"

// Formato corto en distintos locales
const locales = ['en-US', 'de-DE', 'ja-JP'];
locales.forEach(locale => {
  console.log(`${locale}: ${formatDateTime(date, {
    locales: locale,
    dateStyle: 'short',
    timeStyle: 'short'
  })}`);
});
// Resultado:
// en-US: 3/14/24, 7:30 AM
// de-DE: 14.03.24, 07:30
// ja-JP: 2024/03/14 7:30

Gestión de zonas horarias

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

// Formato para distintas zonas horarias
const timeZones = [
  'America/New_York',
  'Europe/London', 
  'Asia/Tokyo'
];

timeZones.forEach(timeZone => {
  const formatted = formatDateTime(date, {
    locales: 'en-US',
    timeZone,
    dateStyle: 'medium',
    timeStyle: 'medium'
  });
  console.log(`${timeZone}: ${formatted}`);
});
// La salida varía según el horario de verano

Notas

  • El parámetro locales es opcional y, si no se proporciona, usa el locale del sistema de forma predeterminada
  • Utiliza el mismo Intl.DateTimeFormat subyacente que el método de la GT class
  • Los resultados se almacenan en caché internamente para mejorar el rendimiento con combinaciones repetidas de locale/options
  • Se admiten todas las options estándar de Intl.DateTimeFormat
  • Las zonas horarias se manejan correctamente cuando se especifican
  • Los distintos locales tienen formatos de fecha y hora predeterminados diferentes y preferencias de 12 horas frente a 24 horas

Próximos pasos

¿Qué te parece esta guía?