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:
|
format |
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 kann hier noch die Zeitzone definiert werden in der das Datum ausgegeben werden soll. Siehe auch getUserTimezone (Hole Benutzerzeitzone). Die Zeitzone kann sowohl als Zeitzonen (TimeZone) Objekt als auch als Zeitzonen-ID übergeben werden (z.B. Europe/Berlin). |
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: |
|
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 |