navigation Navigation


DatePipe


DatePipe ist ein Bestandteil des Pakets @angular/common, der dazu verwendet wird, Datum und Uhrzeit in Angular Anwendungen einheitlich, benutzerfreundlich und internationalisiert darzustellen.

Was ist DatePipe

Die DatePipe ist eine der eingebauten Pipes in Angular, die speziell für die Formatierung von Datums- und Zeitwerten entwickelt wurde. Sie gehört zu den Transformations-Pipes und wandelt Datumsobjekte oder Datums-Strings in Strings mit dem gewünschten Format um.

Vorteile von Verwendung von DatePipe

  • Benutzerfreundlichkeit: Datumsangaben sollten in einem Format angezeigt werden, das für den Benutzer leicht verständlich ist.
  • Internationalisierung: Verschiedene Länder verwenden unterschiedliche Datumsformate (z.B. MM/DD/YYYY in den USA, DD.MM.YYYY in Deutschland).
  • Konsistenz: Alle Datums- und Zeitangaben innerhalb einer Anwendung sollten einem einheitlichen Format folgen.
  • Lesbarkeit: ISO-Datumsformate oder Zeitstempel sind Menschen oft schwer zu lesen. Hier konvertiert DatePipe diese Angaben in leicht lesbare Formate.

Syntax und grundlegende Verwendung

Die allgemeine Syntax von DatePipe in Angular sieht wie folgt aus.

{{ wert | date[:format[:timezone[:locale]]]}}

Dabei ist:

  • wert: Ein Datumsobjekt, eine Anzahl von Millisekunden seit dem Unix-Epoch oder ein ISO-String.
  • format: Optional. Eine vordefinierte Formatzeichenfolge oder ein benutzerdefiniertes Format.
  • timezone: Optional. Die Zeitzone, in der das Datum angezeigt werden soll.
  • locale: Optional. Der Sprachcode für die Lokalisierung des Datums.

Einfaches Beispiel

Beispiel
@import { Component } from '@angular/core';
@import { DatePipe } from '@angular/common';

@Component({
    selector: 'app-date-example',
    standalone: true,
    imports: [DatePipe],
    template: `
        <p>Datum ohne Format: {{ dateObject | date }}</p>
        <p>Date mit Format: {{ dateObject | date:'dd.MM.yyyy' }}</p>
    `
})
export class DateExampleComponent {
    dateObject = new Date(2025, 04, 04);
}
Datum ohne Format: Apr 4, 2025
Datum mit Format: 04.04.2025

Angular - DatePipe - Basis-Formate

Dieses Beispiel zeigt die Verwendung der DatePipe mit und ohne ein explizites Format. Ohne Format wird die Pipe das Standardformat verwenden, das vom aktuellen Locale abhängt.

Locale und DatePipe in Angular

Die DatePipe unterstützt verschiedene Locales (Spracheinstellungen), die das Datumsformat entsprechend den regionalen Konventionen anpassen. Das Locale kann als dritter Parameter an die Pipe übergeben werden.

Beispiel
@import { Component } from '@angular/core';
@import { DatePipe, registerLocaleData } from '@angular/common';

import localeDe from '@angular/common/locales/de';
import localeFr from '@angular/common/locales/fr';

registerLocaleData(localeDe);
registerLocaleData(localeFr);

@Component({
    selector: 'app-date-example',
    standalone: true,
    imports: [DatePipe],
    template: `
        <p>Datum (US-Format): {{ dateObject | date:'mediumDate':'':'en-US' }}</p>
        <p>Datum (DE-Format): {{ dateObject | date:'mediumDate':'':'de' }}</p>
        <p>Datum (FR-Format): {{ dateObject | date:'mediumDate':'':'fr' }}</p>
    `
})
export class DateExampleComponent {
    dateObject = new Date(2025, 04, 04);
}
Datum (US-Format): Apr 4, 2025
Datum (DE-Format): 04.04.2025
Datum (FR-Format): 4 avr. 2025

Angular - DatePipe - Locale Beispiel

Vordefinierte Formate

Angular bietet mehrere vordefinierte Formatzeichenfolgen, die häufig verwendete Datumsformate abdecken.

Vordefinierte Formate
short

Kurzes Datum, kurze Uhrzeit

{{ dateObject | date:'short' }}
14.01.2025, a. m.

medium

Mittleres Datum, mittlere Uhrzeit

{{ dateObject | date:'medium' }}
14. Jan. 2023, 09:30:42

long

Langes Datum, lange Zeit

{{ dateObject | date:'long' }}
14. Januar 2023 um 09:30:42 GMT+1

full

Vollständiges Datum, vollständige Zeit

{{ dateObject | date:'full' }}
Samstag, 14. Januar 2023 um 09:30:42 GMT+01:00

shortDate

Kurzes Datum

{{ dateObject | date:'shortDate' }}
14.01.2023

mediumDate

Mittleres Datum

{{ dateObject | date:'mediumDate' }}
14. Jan. 2023

longDate

Langes Datum

{{ dateObject | date:'longDate' }}
14. Januar 2023

fullDate

Vollständiges Datum

{{ dateObject | date:'fullDate' }}
Samstag, 14. Januar 2023

shortTime

Kurze Zeit

{{ dateObject | date:'shortTime' }}
09:30

mediumTime

Mittlere Zeit

{{ dateObject | date:'mediumTime' }}
09:30:42

longTime

Lange Zeit

{{ dateObject | date:'longTime' }}
09:30:42 GMT+1

fullTime

Vollständige Zeit

{{ dateObject | date:'fullTime' }}
09:30:42 GMT+01:00

Benutzerdefinierte Formate

Wenn die vordefinierten Formate nicht ausreichen, kann man mit benutzerdefinierten Formaten arbeiten. Angular’s DatePipe unterstützt eine Vielzahl von Formatierungszeichen, die kombiniert werden können, um maßgeschneiderte Datumsformate zu erstellen.

Hier ist eine vollständige Übersicht aller verfügbaren Formatierungszeichen.

y

Jahr

y: 2023 | yy: 23


M

Monat

M: 1 | MM: 01 | MMM: Jan | MMMM: Januar


d

Tag des Monats

d: 1 | dd: 01


E

Wochentag

E: Mo | EEEE: Montag


h

Stunde [1-12]

h: 1 | hh: 01


H

Stunde [0-23]

H: 13 | HH: 13


m

Minute

m: 1 | mm: 01


s

Sekunde

s: 1 | ss: 01


S

Millisekunde

S: 1 | SSS: 001


z

Zeitzonen-Name

z: GMT+1 | zzzz: GMT+01:00


Z

Zeitzonen-Offset

Z: +0100 | ZZZZ: GMT+01:00


a

AM/PM

a: AM, PM


j

Stunde in Tag-Periode [1-12]

j: 9 | jj: 09


Diese Formatierungszeichen können kombiniert werden, um ein benutzerdefiniertes Format zu erstellen.

custom-date.component.ts
import { Component } from '@angular/core';
import { DatePipe } from '@angular/common';

@Component({
    selector: 'app-custom-date',
    standalone: true,
    imports: [DatePipe],
    templateUrl: './custom-date.component.html'
})
export class CustomDateComponent {
    dateToday = new Date();
}
custom-date.component.html
<p>
    dd.MM.yyyy<br>
    <strong>{{ dateToday | date:'dd.MM.yyyy' }}</strong>
</p>
<p>
    EEEE, d. MMMM yyyy:<br>
    <strong>{{ dateToday | date:'EEEE, d. MMMM yyyy' }}</strong>
</p>
<p>
    HH:mm:ss:<br>
    <strong>{{ dateToday | date:'HH:mm:ss' }}</strong>
</p>
<p>
    yyyy-MM-dd'T'HH:mm:ss.SSSZ:<br>
    <strong>{{ dateToday | date:'yyyy-MM-dd\'T\'HH:mm:ss.SSSZ' }}</strong>
</p>

Angular - DatePipe - Custom Format