prevnext   » Startseite » Haupt-Referenz » Funktions-Referenz » printTime()

printTime()

Formatierte Ausgabe einer Datums- und Zeitangabe.

Syntax:

string printTime ( time, string:format )
string printTime ( time, string:format, char:escape_char )

Parameter:

time Bei diesem Parameter handelt es sich um eine Datums- und/oder Zeitangabe. Der Parameter muss vom Typ NONE, INT32, INT64, FLOAT oder STRING sein. Weitere Details zu Zeitangaben sind unter »Zeitangaben« beschrieben.
format Die Format-Zeichenkete legt das Ausgabeformat fest. (siehe Text)
escape_char Mit escape_char wird das Zeichen angegeben, welches im Formatstring format die Steuersequenzen einleitet. Ohne Angabe (oder falls 0) wird '%' verwendet.

Ist escape_char eine Zahl, dann wird siese mittels int32() gewandelt und die unteren 8 Bits ergeben den zeichenkode. Ist escape_char eine Zeichenkette dann wird das erste Zeichen verwendet. In allen anderen Fällen wird das Zeichen '%' verwendet.

Beschreibung:

Die Zeitangabe time wird formatiert ausgegeben. Dazu wird ähnlich wie bei fprintf() eine Format-Zeichenkette format verwendet. Diese Format-Zeichenkette enthält Steuersequenzen, die interpretiert werden und berechnete Ausgabe erzeugen. Zeichen ausserhalb dieser Steuersequenzen werden 1:1 kopiert.

Eine Steuersequenz beginnt mit dem Zeichen escape, welches normalerweise '%' ist. Möchte man das escape-Zeichen selbst darstellen, dann muss es doppelt in der Format-Zeichenkette format vorhanden sein, z.B. '%%'.

Für die weitere Beschreibung wird davon ausgegangen dass '%' das Steuerzeichen ist.

Ein Steuerelement hat grundsätzlich das folgende Format, wobei Teile in eckigen Klammern [] optional sind:
'%' flags [ '{' text '}' ] [field_width] ['.' prec] control.

Kode Beschreibung
'%' Das durch den Parameter escape spzifizierte Zeichen (Voreinstellung \'%\') leitet die Steuersequenz ein. Möchte man das escape-Zeichen selbst darstellen, dann muss es doppelt vorhanden sein, z.B. '%%'.
flags Die Flags sind eine beliebige Kombination aus den Zeichen ' ', -, +, >, ' und 0. Die Bedeutung ist in der nachfolgenden Tabelle beschreben.
'{' text '}' Alternativ kann auch '[' text ']' mit eckigen anstatt geschweiften Klammern verwendet werden.

Anstatt des Zahlenwertes wird der angegebene Text in Abhängigkeit des Wertes ausgegeben. Der Text wird dabei durch Pipezeichen ('|') in verschiedenen Segmente unterteilt. Ist nur ein Segment vorhanden, dann wird der Text nur dann ausgegeben, wenn der zugehörige Wert nicht Null ist.

Bei 2 oder mehr Segmenten wird das Segment mit dem des Wertes entsprechenden Index (Nnullbasiert) ausgegeben. Bei einem Wert <=0 wird das Segment #0 ausgegeben, bei dem Wert =N das Segment #N. Für größere Werte wird immer das letzte Segment ausgegeben.

Bei der Interpretation des Textes hat der Backslash ('\') eine bsondere Bedeutung: Das folgende Zeichen verliert seine Sonderbedeutung und wird als normales Zeichen interpretiert. Damit können u.a. die drei Zeichen '\', '|' und ']' im Text verwendet werden.

field_width Diese vorzeichenlose Zahl im Dezimalsystem gibt die minimale Feldweite für die Darstellung eines numerischen Tags an. Sollte die Darstellung der Zahl weniger als field_width Zeichen benötigen, so werden links von der Zahl soviele Leerzeichen oder Nullen eingefügt bis die geforderte Feldweite erreicht wird. Ohne Angabe einer Feldweite wird die natürliche Feldweite des aktuellen Elementes (siehe nächste Tabelle) verwendet.

Werte >100 werden als ==100 interpretiert, d.h. die maximale Feldweite eines Elementes beträgt 100.

Bei Textausgaben (im Gegensatz zu Zahlenausgaben) gibt die Feldweite gleichzeitig die maximale Anzahl von Zeichen an. Außerdem werden Texte rechts (am Textende) mit Leerzeichen aufgefüllt. Eine Feldweite von 0 (Voreinstellung) bedeutet, dass der Text vollständig und ohne Füllzeichen ausgegeben wird.

'.' prec Die vorzeichenlose Zahl prec (Dezimalsystem) gibt die Anzahl der Nachkommastellen für die Tags 'F', 'I', 'N', 'T', 's' und 'S' an; für andere Tags wird diese Angabe ignoriert.

Werte >7 werden als ==7 interpretiert.

control Mit diesem Zeichen wird festgelegt, was dargestellt werden soll. Hierfür sind alle Buchstaben (a-z und A-Z) reserviert. Details sind in der nächsten Tabellen beschrieben.

Die folgende Tabelle beschreibt alle Flags:

Flag Beschreibung
- Die Zahlen werden normalerweise ohne Vorzeichen ausgegeben. Durch die Option '-' werden negative Werte mit negativen Vorzeichen ausgegeben. Die Stellung des Vorzeichens kann durch die Option '>' bestimmt werden.

(Siehe auch Optionen '+' und ' ')

+ Die Zahlen werden normalerweise ohne Vorzeichen ausgegeben. Durch die Option '+' werden alle Werte mit einem Vorzeichen (Minus oder Plus) ausgegeben. Die Stellung des Vorzeichens kann durch die Option '>' bestimmt werden.

(Siehe auch Optionen '-' und ' ')

' ' Die Zahlen werden normalerweise ohne Vorzeichen ausgegeben. Durch die Option ' ' werden alle Werte mit einem Vorzeichen (Minus oder Leerzeichen) ausgegeben. Die Stellung des Vorzeichens kann durch die Option '>' bestimmt werden.

(Siehe auch Optionen '-' und ' ')

> Das (optionale) Vorzeichen werden normalerweise links von der Zahl dargestellt. Durch die Option '>' wird das (optionale) Vorzeichen rechts von der Zahl dargestellt.
0 Bei Zahlen wird zum Erreichen der Feldweite der Bereich mit der Ziffer Null anstatt mit dem Leerzeichen aufgefüllt.
' Die Ziffern von große Zahlen werden in 3-Gruppen zusammengefasst und duch einen Punkt voneinander getrennt.

Die folgende Tabelle zeigt alle control-Kodes:

Kode 01 fw2 Beschreibung
's'   5 Die Sekundenanteile des aktuellen Tages werden ausgegeben. Der Wertebereich ist normalerweise: [0..86399].
'S' 0 2 Die Sekundenanteile der aktuellen Minute werden ausgegeben. Der Wertebereich ist normalerweise: [0..59].
'M' 0 2 Die Minutenanteile der aktuellen Stunde werden ausgegeben. Der Wertebereich ist normalerweise: [0..59].
'H'   2 Die Stundenanteile des aktuellen Tages werden ausgegeben. Der Wertebereich ist normalerweise: [0..23].
'h'   2 Die Stundenanteile des aktuellen Tages werden ausgegeben. Dabei wird die Sstundenzahl modulo 12 verwendet und die 0 durch 12 ersetzt. Der Wertebereich ist: [1..12].
'd'   2 Die Tageszahl des Datums wird ausgegeben. Der Wertebereich ist normalerweise: [1..31].
'j'   3 Die Tagesnummer des Jahres wird ausgegeben. Der Wertebereich ist normalerweise: [1..366].
't'   6 Es wird die Anzahl der Tage ausgegeben, die seit dem 1.1.45 vor Chr. vergangen sind.
'm' 0 2 Der Monats des Datums wird als Zahl ausgegeben. Der Wertebereich ist normalerweise: [1..12].
'B'   0 Der Monats des Datums wird als Text ausgegeben. Zur Erzeugung des Textes wird die Funktion monthName() verwendet.
'y' 0 4 Die Jahreszahl des Datums wird ausgegeben.
'Y' 0 4 Das Jahr zur offiziellen Wochennummer wird ausgegeben. Der Wertebereich ist normalerweise: [1..12].
'W'   2 Die offizielle Wochennummer wird ausgegeben. Der Wertebereich ist normalerweise: [1..53].
'V'   2 Die Wochennummer des aktullen Jahres wird ausgegeben. Der Wertebereich ist normalerweise: [0..53].
'w'   1 Der Wochentag wird als Zahl (1-7 für Mo-So) ausgegeben.
'A'   0 Der Wochentag wird als Text ausgegeben. Zur Erzeugung des Textes wird die Funktion dayName() verwendet.
'g'   0 Die Feldweite wird ignoriert und es wird immer genau ein Zeichen ausgegeben. Je nach dem Inhalt der Variable is_gregorian wird ein '?' (is_gregorian<0), ein 'J' (is_gregorian==0) oder ein 'G' (is_gregorian>0) ausgegeben.
'P'   0 Die Feldweite wird ignoriert und es wird immer genau ein Zeichen ausgegeben. Je nach dem Inhalt der Variable is_leapyear wird ein '?' (is_leapyear<0), ein '-' (is_leapyear==0) oder ein '+' (is_leapyear>0) ausgegeben.
'p'   0 Die Feldweite wird ignoriert und werden immer genau zwei Zeichen ausgegeben. Dazu wird die Variable hour ausgewertet. Ist hour<12, dann wird 'AM' ausgegeben, sonst 'PM'.
'b'   0 Die Feldweite wird ignoriert und werden immer genau zwei Zeichen ausgegeben. Dazu wird die Variable year ausgewertet. Ist hour<=0, dann wird 'BC' ausgegeben, sonst 'AD'.
'z' 0 5 Die Zeitzone wird im Format '+hhmm' ausgegeben. Der Wert gibt den Versatz zur UTC in Stunden und Minuten an. Die Flags 0 (zero padding) und + (print sign) sind implizit gesetzt. #:tab$line_end
'D'   0 '%D' (Date) ist eine Kurzform für "%d. %3B %-y".
'T'   0 '%T' (Time) ist eine Kurzform für "%H:%M:%S". Die Angabe einer Genauigkeit wird für die Sekundenangabe '%S' übernommen.
'R'   0 '%R' (RFC Time) ist eine Kurzform für "%3A, %02d %3B %Y %H:%M:%S %z". Die Angabe einer Genauigkeit wird für die Sekundenangabe '%S' übernommen. Damit sind Zeitangaben gemäß RFC 822 möglich. #:tab$line_end
'n'   0 '%n' (numerisch) ist eine Kurzform für "%-y%m%02d".
'N'   0 '%D' (numerisch) ist eine Kurzform für "%-y%m%02d%H%M%S". Die Angabe einer Genauigkeit wird für die Sekundenangabe '%S' übernommen.
'i'   0 '%i' (ISO) ist eine Kurzform für "%-y-%m-%02d".
'l'   0 '%l' (Long) ist eine Kurzform für "%-y-%m-%02d".

'%l' ist identisch mit '%i' (ISO) und sollte nicht mehr verwendet werden.

'I'   0 '%i' (ISO) ist eine Kurzform für "%-y-%m-%02d %H:%M:%S". Die Angabe einer Genauigkeit wird für die Sekundenangabe '%S' übernommen.
'L'   0 '%L' (Long) ist eine Kurzform für "%-y-%m-%02d %H:%M:%S". Die Angabe einer Genauigkeit wird für die Sekundenangabe '%S' übernommen.

'%L' ist identisch mit '%I' (ISO) und sollte nicht mehr verwendet werden.

'f'   0 '%f' (Filename) ist eine Kurzform für "%-y-%m-%02d-%H%M".
'F'   0 '%F' (Filename) ist eine Kurzform für "%-y-%m-%02d-%H%M%S". Die Angabe einer Genauigkeit wird für die Sekundenangabe '%S' übernommen.
'x'   0 '%x' (eXtra) ist eine Kurzform für "%-y-%m-%02d %H:%M:%S".

'%x' ist identisch mit '%I' (ISO) und sollte nicht mehr verwendet werden.

'X'   0 '%X' (eXtra) ist eine Kurzform für
"%-y-%m-%02d %H:%M:%.7S, W=%2A/%02W/%Y, T=%t.%05s, %g%P".

01: Voreinstellung für das Füllzeichen, falls keine Feldweite angegeben wird.
fw2: Voreinstellung für die Feldweite.

Anmerkung: Per ISO Norm beginnt eine Woche am Montag und endet am Sonntag. Die erste Woche des Jahres ist die Woche, in die der erste Donnerstag (der Tag in der Mitte der Woche) des Jahres fällt.

Funktionsergebnis:   STRING

Als Funktionsergebnis wird die formatierte Zeichenkette geliefert.

Siehe auch:
 Zeitangaben   printInterval()   scanTime()   time() 

Weitere ähnliche Funktionen:

Datum & Zeit
Funktion Kurzinfo
date() Zeitangabe in das Datumsformat (INT32) wandeln.
dayName()
easterDate() Berechne den Ostersonntag einen gegebenen Jahres.
easterDayOfMarch() Berechne den Ostersonntag einen gegebenen Jahres und liefere den März-Tag.
monthName()
mSec() Relative Zeit in Millisekunden zu einem nicht weiter definiertem Startpunkt.
nSec() Relative Zeit in Nanosekunden zu einem nicht weiter definiertem Startpunkt.
printInterval() textausgabe eines Zeitintervalles
printTime() Formatierte Ausgabe einer Datums- und Zeitangabe.
scanInterval()
scanTime()
sec() Relative Zeit in Sekunden zu einem nicht weiter definiertem Startpunkt.
selectTime() Eine einzelne Komponenten (von Sekundenbruchteil bis Jahr) einer Zeitangabe errechnen.
splitTime() Die einzelnen Komponenten (von Sekundenbruchteile bis Jahr) einer Zeitangabe errechnen.
time() Zeitangabe in das Zeitformat (INT64) wandeln.
unix2date() Eine Zeitangabe im Unix-Format in eine Zeitangabe im Datumsformat wandeln.
unix2time() Eine Zeitangabe im Unix-Format in eine 64-Bit-Zeitangabe wandeln.
unixTime() Zeitangabe in das Unix-Zeitformat (INT32) wandeln.
uSec() Relative Zeit in Mikrosekunden zu einem nicht weiter definiertem Startpunkt.
 
Formatierte Ausgabe
Funktion Kurzinfo
hexDump() Eine Zeichenkette als Hex-Dump ausgeben.
Print() Einen formatierten Text erzeugen.
printBitField() Ein Bitfeld in eine textuelle Darstellung überführen.
printFileName()
printInterval() textausgabe eines Zeitintervalles
printRoman() Ganzzahl in römischer Schreibweise ausgeben.
printTime() Formatierte Ausgabe einer Datums- und Zeitangabe.
string()