Saltar al contenido principal

dateImplictTz

Paquete: @tiendana/ngx-core/pipes

Formatea fechas asegurando que se interpreten en UTC cuando no tienen zona horaria explícita.

Características​

✅ Agrega automáticamente 'Z' a fechas string sin timezone
✅ Convierte timestamps Unix (segundos) a milisegundos
✅ Usa locale español de Colombia (es-CO)
✅ Formatea en UTC para consistencia
✅ Manejo seguro de valores null, undefined y cadena vacía
✅ No agrega Z si la fecha ya trae zona (Z, +05:00, -0500); la salida se formatea siempre en UTC

API​

Sintaxis​

{{ date | dateImplictTz:format }}

Parámetros​

ParámetroTipoDescripciónRequerido
valueDate | string | number | null | undefinedFecha a formatear✅
formatstringFormato de salida (igual que Angular DatePipe)✅

Retorno​

String con la fecha formateada. Retorna string vacío si el valor es null, undefined o ''.

Uso​

Con String sin Timezone​

// Componente
dateString = '2024-03-15T10:30:00'; // Sin 'Z' al final

// Template
{{ dateString | dateImplictTz:'dd/MM/yyyy HH:mm' }}
// Output: "15/03/2024 10:30"

El pipe detecta que no tiene timezone y agrega 'Z' automáticamente para interpretarlo como UTC.

Con Timestamp Unix​

// Componente
timestamp = 1710499800; // Segundos desde epoch

// Template
{{ timestamp | dateImplictTz:'medium' }}
// Output: "15 mar 2024, 10:30:00"

El pipe multiplica por 1000 automáticamente para convertir segundos a milisegundos.

Con Objeto Date​

// Componente
today = new Date();

// Template
{{ today | dateImplictTz:'EEEE, d MMMM y' }}
// Output: "viernes, 15 marzo 2024"

Formatos Comunes​

FormatoEjemploDescripción
'dd/MM/yyyy'15/03/2024Fecha corta
'dd/MM/yyyy HH:mm'15/03/2024 10:30Fecha y hora
'yyyy-MM-dd'2024-03-15ISO format
'short'15/3/24, 10:30Predefinido corto
'medium'15 mar 2024, 10:30:00Predefinido medio
'long'15 de marzo de 2024, 10:30:00 UTCPredefinido largo
'EEEE, d MMMM y'viernes, 15 marzo 2024Fecha completa
'HH:mm:ss'10:30:00Solo hora

Ver Angular DatePipe para más formatos.

Casos de Uso​

  • Fechas del backend sin timezone
  • Timestamps de APIs Unix
  • Formato consistente en toda la aplicación
  • Listas de eventos
  • Historial de transacciones

Comparación con DatePipe​

// DatePipe nativo (puede variar según timezone del navegador)
{{ date | date:'dd/MM/yyyy' }}

// dateImplictTz (siempre UTC, consistente)
{{ date | dateImplictTz:'dd/MM/yyyy' }}

Notas​

Timezone UTC

El pipe siempre formatea en UTC para garantizar consistencia entre diferentes zonas horarias y navegadores.

Timestamps

El pipe multiplica por 1000 todo valor numérico: espera segundos. Si tu API devuelve milisegundos, usa DatePipe nativo.

Locale es-CO

El pipe formatea con el locale es-CO, que debe estar registrado antes de usarlo; si no, Angular lanza NG0701.

import { registerLocaleData } from '@angular/common';
import localeEsCo from '@angular/common/locales/es-CO';

registerLocaleData(localeEsCo, 'es-CO');