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

TypeScript 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);
}
Output
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.

TypeScript 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);
}
Output
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

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

Mittleres Datum, mittlere Uhrzeit

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

Langes Datum, lange Zeit

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

Vollständiges Datum, vollständige Zeit

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

Kurzes Datum

TypeScript
{{ dateObject | date:'shortDate' }}
Output
14.01.2023
mediumDate

Mittleres Datum

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

Langes Datum

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

Vollständiges Datum

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

Kurze Zeit

TypeScript
{{ dateObject | date:'shortTime' }}
Output
09:30
mediumTime

Mittlere Zeit

TypeScript
{{ dateObject | date:'mediumTime' }}
Output
09:30:42
longTime

Lange Zeit

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

Vollständige Zeit

TypeScript
{{ dateObject | date:'fullTime' }}
Output
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.

Parameter
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.

TypeScript 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();
}
TypeScript 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

/ Weiter

Zurück zu Common

Zur Übersicht