fd (Datum formatieren)

Die Funktion $fd konvertiert einen gegebenen Zeitpunkt in einen entsprechend formatierten lesbaren Text. Dabei kann eine beliebige Formatierungsmaske und eine Zeitzone angegeben werden.

Syntax

$fd(date[,format[,timeZone]])

Parameter

Name

Beschreibung

date

Ein beliebiges Datum übergeben als einer der folgenden Typen:

  • DateTime (Datum mit Uhrzeit und Zeitzone)

  • DateRange (Datumsbereich. "Von"- und "Bis"-Datum werden formatiert ausgegeben)

  • Zahl (Zeitstempel in Millisekunden)

  • Time (Zeitobjekt)

  • Timestamp (Zeitstempel Objekt)

format
(optional)

Eine optionale Formatierungsmaske (Pattern). Ist format nicht gegeben, wird auf die Standardmaske aus der Sprachverwaltung zurückgegriffen (lobsterui/dateFormat, lobsterui/timeFormat).

Das Format wird in einem Platzhaltersyntax angegeben, wobei jedes Platzhalterzeichen durch einen formatierten Datums- oder Zeitwert ersetzt wird.

z.B.: "dd.MM.yyyy" für zweistelligen Tag Punkt zweistelliger Monat Punkt vierstelliges Jahr (Beispielergebnis: 03.12.2019)

Eine Liste von unterstützten Platzhaltern findet sich weiter unten im Kapitel.

timeZone
(optional)

Optional kann hier noch die Zeitzone definiert werden in der das Datum ausgegeben werden soll.
Ist der Parameter date von einem Typ, welcher selbst eine Zeitzoneninformation vorhält, so wird diese Zeitzone beibehalten, sofern der timeZone Parameter nicht gesetzt wird oder leer ist.
Typen mit Zeitzoneninformationen sind: DateTime, DateRange und das native Javascript Datum.

Siehe auch getUserTimezone (Hole Benutzerzeitzone).

Die Zeitzone kann sowohl als Zeitzonen (TimeZone) Objekt als auch als Zeitzonen-ID übergeben werden (z.B. Europe/Berlin).
Sofern gegeben kann auch ein natives Javascript Date übergeben werden von dem die Zeitzone gelesen wird. Hierfür existiert auf normalem Wege kein erzeugbarer Fall.

Rückgabewert

Gibt den übergebenen Zeitpunkt als formatierten Text zurück.

Unterstützte Format-Platzhalter

Beispielwert

Montag, 04.07.2005 17:03:05,004

Pattern und Beispiel-Ausgabe (Standard-DE) je Komponente für den Beispielwert:

Komponente

1x

2x

3x

4x

5x

Jahr

Y "05"
YY "05"
YYY "2005"
YYYY "2005"
YYYYY "02005"

Quartal

Q "3"
QQ "03"
QQQ "Q3"
QQQQ "drittes Quartal"

Monat

M "7"
MM "07"
MMM "Jul"
MMMM "Juli"

Wochentag (0 Sonntag - 6 Samstag)

E "1"
EE "01"
EEE "Mon"
EEEE "Montag"

Wochentag (1 Montag - 7 Sonntag)

u "1"

uu "01"

uuu "001"

usw.

Tag

D "4"

DD "04"

zusätzliche Vornullen (ohne praktischen Mehrwert)

Stunde 1-12

h "5"

hh "05"

zusätzliche Vornullen (ohne praktischen Mehrwert)

Stunde 0-11

K "5"

KK "05"

zusätzliche Vornullen (ohne praktischen Mehrwert)

Stunde 0-23

H "17"

HH "17"

zusätzliche Vornullen (ohne praktischen Mehrwert)

Stunde (AM/PM)

a "nachm."

weitere Wiederholungen ohne Effekt

Minute

m "3"

mm "03"

zusätzliche Vornullen (ohne praktischen Mehrwert)

Sekunde

s "5"

ss "05"

zusätzliche Vornullen (ohne praktischen Mehrwert)

Millisekunde

S "4"

SS "04"

SSS "004"

zusätzliche Vornullen (ohne praktischen Mehrwert)

Hinweise:

  • Die in der Tabelle als Zeilen angeordneten "Komponenten" dürfen in demselben Pattern nicht mehrfach adressiert werden, sonst wird insgesamt eine leere Zeichenfolge zurückgegeben.

  • Es gibt keine Möglichkeit Zeichen, die nicht interpretiert sondern als "Literal" direkt ausgegeben werden sollen, zu kennzeichnen. Das bedingt Einschränkungen der Gestaltungsfreiheit für Patterns:

    • Alle Textzeichen, die laut Tabelle (oben) Komponenten repräsentieren, können nicht als Literalzeichen im Pattern verwendet werden. Dabei wird zwischen Groß- und Kleinschreibung unterschieden.

Beispiele

Negativbeispiele sind rot hinterlegt.

Eingangswert

Pattern

Ausgabe

Kommentar

17.05.2011 17:35:11.050

YYYY-MM-DD HH:mm

2011-05-17 17:35

für Textsortierung geeignetes Datumsformat

YYYY-MM-DD HH:MM

leer

doppelte Verwendung von MM (statt 'mm')

YYYY-MM-DD HH:mm UTC

2011-05-17 17:35 UTC

Hinweis auf Zeitzone 'UTC' ist als Literal geeignet

YYYY-MM-DD HH:mm GMT

leer

'M' in 'GMT' wird hier als doppelte Verwendung gewertet

EEEE HH:mm GMT

Dienstag 17:35 G5T

Bei Verzicht auf 'MM' (für den Monat) erscheint die Monatsnummer 5 im Literal.

17.05.2011 00:35:11.050

hh:mm a

12:35 AM

typisches angelsächsisches Zeitformat

KK:mm a

00:35 AM

ein eher ausgefallenes 12-Stunden-Zeitformat

HH:mm:ss.SSS

00:35:11.050

Zeitformat mit maximaler Genauigkeit (Millisekunden)

HH:mm:ss.S

00:35:11.50

Zeitformat mit ungeeigneter Wiedergabe der Millisekunden

EEEE, D. MMMM (QQQ)

leer

Der Gesamtausdruck ergibt eine ungültige Syntax, da durch das Komma nach EEEE ein zusätzliches Argument abgetrennt wird:
$fd(..., EEEE, D. MMMM (QQQ))Stattdessen müssten solche Steuerzeichen ausgenommen (escaped) werden:$fd(..., EEEE\, D. MMMM (QQQ\))

EEEE, D. MMMM {QQQ}

Dienstag, 17. Mai

Die Quartal-Komponete entfällt, weil die geschweiften Klammern als Referenz auf ein Feld QQQ gewertet werden, das eventuell nicht existiert.

Um dies zu verhindern müsste der Ausdruck lauten: EEEE, D. MMMM \{QQQ\}

Lokalisierung der Datumsausgabe

Einige Patterns verwenden Texte die über die Sprachverwaltung bzw. als Firmenspezifische Sprachanpassungen angepasst werden können.

Komponente

Pattern

Bundle Name

Resource Name

DE (Standard)

EN (Standard)

Quartal

QQQQ

lobsterui

quarterNames

erstes Quartal,zweites Quartal,drittes Quartal,viertes Quartal

first quarter,second quarter,third quarter,fourth quarter

Monat

MMMM

lobsterui

month.names

Januar,Februar,März, ...

January,February,March, ...

MMM

lobsterui

month.namesShort

Jan,Feb,Mrz,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez

Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec

Wochentag

EEEE

lobsterui

dayNames

Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag

Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday

EEE

lobsterui

dayNamesShort

So,Mo,Di,Mi,Do,Fr,Sa

Sun,Mon,Tue,Wed,Thu,Fri,Sat

Stunde (AM/PM)

a

lobsterui

am

vorm.

AM

pm

nachm.

PM