FormatTime

Transformiert einen YYYYMMDDHH24MISS-Zeitstempel in ein bestimmtes Datum/Zeit-Format.

FormatTime, AusgabeVar , YYYYMMDDHH24MISS, Format

Parameter

AusgabeVar

Name der Variable, in der das Ergebnis gespeichert werden soll.

YYYYMMDD...

Lassen Sie diesen Parameter leer, um die gegenwärtige Ortszeit zu verwenden. Ansonsten können Sie den kompletten oder führenden Teil eines Zeitstempels im YYYYMMDDHH24MISS-Format angeben. Wenn der Datums- und/oder Zeitbereich ungültig ist (z. B. der 29. Februar eines Nicht-Schaltjahrs), wird der entsprechende Bereich in AusgabeVar weggelassen. Trotz der Tatsache, dass nur Jahre zwischen 1601 und 9999 unterstützt werden, können formatierte Zeiten vor 1601 erzeugt werden, solange der Zeitbereich gültig ist.

Format

Fehlt dieser Parameter, wird standardmäßig die Zeit gefolgt vom langen Datum verwendet, die beide gemäß dem Gebietsschema des aktuellen Benutzers formatiert werden. Zum Beispiel: 10:24 Freitag, 30. April 2010

Ansonsten können Sie eines oder mehrere der folgenden Datum-Zeit-Formate angeben und direkt geschriebene Leer- und Satzzeichen dazwischen einfügen (Kommas müssen nicht mit einem Escapezeichen versehen werden; sie können normal verwendet werden). Beachten Sie im folgenden Beispiel, dass das M großgeschrieben werden muss: d.M.yyyy h:mm:tt

Datumsformate (Groß-/Kleinschreibung-sensitiv)

d Tag des Monats ohne führende Null (1 – 31)
dd Tag des Monats mit führender Null (01 – 31)
ddd Kurzschreibweise des Wochentags (z. B. Mo) in der Sprache des aktuellen Benutzers
dddd Vollständiger Name des Wochentags (z. B. Montag) in der Sprache des aktuellen Benutzers
M Monat ohne führende Null (1 – 12)
MM Monat mit führende Null (01 – 12)
MMM Kurzschreibweise des Monats (z. B. Jan) in der Sprache des aktuellen Benutzers
MMMM Vollständiger Name des Monats (z. B. Januar) in der Sprache des aktuellen Benutzers
y Jahr ohne Jahrhundert und ohne führende Null (0 – 99)
yy Jahr ohne Jahrhundert und mit führender Null (00 – 99)
yyyy Jahr mit Jahrhundert. Zum Beispiel: 2005
gg Zeitrechnung/Ära gemäß dem Gebietsschema des aktuellen Benutzers (z. B. n. Chr.)

Zeitformate (Groß-/Kleinschreibung-sensitiv)

h Stunde ohne führende Null; 12-Stunden-Format (1 – 12)
hh Stunde mit führender Null; 12-Stunden-Format (01 – 12)
H Stunde ohne führende Null; 24-Stunden-Format (0 – 23)
HH Stunde mit führender Null; 24-Stunden-Format (00 – 23)
m Minute ohne führende Null (0 – 59)
mm Minute mit führender Null (00 – 59)
s Sekunde ohne führende Null (0 – 59)
ss Sekunde mit führender Null (00 – 59)
t Einzelzeichen-Zeitmarker wie A oder P (gemäß dem Gebietsschema)
tt Mehrfachzeichen-Zeitmarker wie AM oder PM (gemäß dem Gebietsschema)

Alleinstehende Formate

Die folgenden Formate sind alleinstehend; das heißt, dass keine anderen Formate oder Texte im Format-Parameter angegeben werden dürfen. Diese Formate sind nicht Groß-/Kleinschreibung-sensitiv.

(Leer) Lassen Sie Format leer, um die Zeit gefolgt vom langen Datum zu erzeugen. Zum Beispiel: 10:24 Freitag, 30. April 2010
Time Die Zeitdarstellung gemäß dem Gebietsschema des aktuellen Benutzers, z. B. 12:04
ShortDate Das kurze Datum gemäß dem Gebietsschema des aktuellen Benutzers, z. B. 30.04.2010
LongDate Das lange Datum gemäß dem Gebietsschema des aktuellen Benutzers, z. B. Freitag, 30. April 2010
YearMonth Jahr-Monat-Format gemäß dem Gebietsschema des aktuellen Benutzers, z. B. April 2010
YDay Tag des Jahres ohne führende Nullen (1 - 366)
YDay0 Tag des Jahres mit führenden Nullen (001 - 366)
WDay Wochentag (1 - 7). Sonntag ist 1.
YWeek Das vollständige Jahr und die Wochennummer gemäß ISO 8601. Zum Beispiel: 200453. Wenn die Woche mit dem 1. Januar mindestens vier Tage im neuen Jahr hat, ist sie Woche 1. Ansonsten ist sie die letzte Woche des vorherigen Jahres, und die nachfolgende Woche die erste Woche des neuen Jahres. Folglich sind sowohl der 4. Januar als auch der erste Donnerstag im Januar immer in Woche 1.

Zusätzliche Optionen

Der YYYYMMDDHH24MISS-Parameter kann folgende Optionen enthalten, die direkt nach dem Zeitstempel erfolgen müssen (gibt es keinen Zeitstempel, können diese Optionen auch alleine stehen). Beachten Sie im folgenden Beispiel, dass Kommas zwischen den letzten vier Elementen fehlen:

FormatTime, AusgabeVar, 20100430 LSys D1 D4

R: Umkehren. Zeigt das Datum vor der Zeit an (nur sinnvoll, wenn Format leer ist).

Ln: Wenn diese Option nicht vorhanden ist, wird das Gebietsschema des aktuellen Benutzers zum Formatieren der Zeichenkette verwendet. Um stattdessen das Gebietsschema des Betriebssystems zu verwenden, gibt man LSys an. Um ein spezifisches Gebietsschema zu verwenden, gibt man den Buchstaben L an, gefolgt einem dezimalen oder hexadezimalen Gebietsschemaidentifikator (LCID). Informationen darüber, wie sich eine LCID zusammensetzt, finden Sie unter www.microsoft.com mit folgendem Suchbegriff: Locale Identifiers

Dn: Datumsoptionen. Geben Sie für n eine der folgenden Zahlen an:
0: Erzwingt die Verwendung der Standardoptionen. Dies führt dazu, dass das kurze Datum wirksam wird.
1: Verwendet das kurze Datum (nur sinnvoll, wenn Format leer ist; nicht kompatibel mit 2 und 8).
2: Verwendet das lange Datum (nur sinnvoll, wenn Format leer ist; nicht kompatibel mit 1 und 8).
4: Verwendet einen alternativen Kalender (falls vorhanden).
8: Verwendet das Jahr-Monat-Format (nur sinnvoll, wenn Format leer ist; nicht kompatibel mit 1 und 2).
0x10: Fügt Markierungen für das Links-nach-Rechts-Leselayout hinzu.
0x20: Fügt Markierungen für Rechts-nach-Links-Leselayout hinzu.
0x80000000: Bewirkt, dass alle Änderungen, die der Benutzer eventuell am Standarddatumsformat des Systems durchgeführt hat, ignoriert werden.
0x40000000: Verwendet zum Übersetzen der Zeichenkettencodierung den ANSI-Zeichensatz des Systems und nicht den Zeichensatz des Gebietschemas.

Tn: Zeitoptionen. Geben Sie für n eine der folgenden Zahlen an:
0: Erzwingt die Verwendung der Standardoptionen. Dies führt dazu, dass Minuten und Sekunden angezeigt werden.
1: Lässt die Minuten und Sekunden weg.
2: Lässt die Sekunden weg.
4: Lässt den Zeitmarker (z. B. AM/PM) weg.
8: Verwendet das 24-Stunden-Format anstelle des 12-Stunden-Formats.
12: Hat den kombinierten Effekt von 4 und 8.
0x80000000: Bewirkt, dass alle Änderungen, die der Benutzer eventuell am Standardzeitformat des Systems durchgeführt hat, ignoriert werden.
0x40000000: Verwendet zum Übersetzen der Zeichenkettencodierung den ANSI-Zeichensatz des Systems und nicht den Zeichensatz des Gebietschemas.

Hinweis: Dn und Tn können beliebig oft verwendet werden, um mehr als eine Option wirksam werden zu lassen, zum Beispiel: FormatTime, AusgabeVar, 20040228 D2 D4 T1 T8

Bemerkungen

Um Buchstaben und Zahlen in Format unverändert nach AusgabeVar zu übertragen, umschließt man sie mit Hochkommas. Zum Beispiel: 'Datum:' MM/dd/yy 'Zeit:' hh:mm:ss tt.

Nicht-alphanumerische Zeichen wie Leerzeichen, Tabulatoren, LF-Zeichen (`n), Schrägstriche, Doppelpunkte, Kommas und andere Satzzeichen müssen hingegen nicht mit Hochkommas umschlossen werden. Die Ausnahme ist das Hochkomma selbst: Um dieses Zeichen direkt zu schreiben, nutzt man vier aufeinanderfolgende Hochkommas (''''). Wenn das Hochkomma bereits von einem Hochkomma-Paar umschlossen ist, sind nur zwei aufeinanderfolgende Hochkommas ('') notwendig.

Wenn Format sowohl Datums- als auch Zeitelemente enthält, dürfen sie nicht vermischt werden. Das heißt, dass die Elemente so angeordnet werden sollen, dass die resultierende Zeichenkette in zwei Hälften aufgeteilt werden kann: eine Zeithälfte und eine Datumhälfte. Die Formatzeichenkette "hh yyyy mm" beispielsweise würde nicht das erwartete Ergebnis liefern, weil sich ein Datumselement zwischen zwei Zeitelementen befindet.

Enthält Format einen numerischen Monatstag (d oder dd) gefolgt von einem vollständigen Monatsnamen (MMMM), wird der Genitiv des Monatsnamens verwendet (wenn die Sprache einen Genitiv besitzt).

Enthält Format mehr als 2000 Zeichen, wird AusgabeVar leer gemacht.

Mit EnvAdd und EnvSub können beliebige Datum- und Zeitwerte addiert oder subtrahiert werden.

Siehe auch

Wenn Sie stattdessen den umgekehrten Weg gehen wollen, eine formatierte Zeichenkette in das YYYYMMDDHH24MISS-Format umzuwandeln, hilft Ihnen der folgende Forumsbeitrag weiter: www.autohotkey.com/forum/topic20405.html

Siehe auch: DateTime-Steuerelement, SetFormat, Transform, interne Datums- und Zeitvariablen, FileGetTime

Beispiele

FormatTime, ZeitZeichenkette
MsgBox Uhrzeit und Datum (Zeit zuerst) ist aktuell %ZeitZeichenkette%.

FormatTime, ZeitZeichenkette, R
MsgBox Uhrzeit und Datum (Datum zuerst) ist aktuell %ZeitZeichenkette%.

FormatTime, ZeitZeichenkette,, Time
MsgBox Uhrzeit ist aktuell %ZeitZeichenkette%.

FormatTime, ZeitZeichenkette, T12, Time
MsgBox 24-Stunden-Uhrzeit ist aktuell %ZeitZeichenkette%.

FormatTime, ZeitZeichenkette,, LongDate
MsgBox Datum (Langformat) ist aktuell %ZeitZeichenkette%.

FormatTime, ZeitZeichenkette, 20050423220133, dddd MMMM d, yyyy hh:mm:ss tt
MsgBox Datum und Uhrzeit ist nach dem Formatieren %ZeitZeichenkette%.

FormatTime, ZeitZeichenkette, 200504, 'Monatsname': MMMM`n'Tagesname': dddd
MsgBox %ZeitZeichenkette%

FormatTime, Jahreswoche, 20050101, YWeek
MsgBox Der 1. Januar 2005 hat das folgende Jahr und die Wochennummer nach ISO: %Jahreswoche%
; Ändert den Zeitstempel einer Datei:
FileSelectFile, Dateiname, 3,, Datei auswählen,
if Dateiname =  ; Der Benutzer hat keine Datei ausgewählt.
    return
FileGetTime, Dateizeitstempel, %Dateiname%
FormatTime, Dateizeitstempel, %Dateizeitstempel%   ; Da der letzte Parameter fehlt, gilt das lange Datums- und Zeitformat.
MsgBox Die ausgewählte Datei wurde zuletzt am %Dateizeitstempel% modifiziert.
; Die folgende Funktion wandelt eine bestimmte Anzahl von Sekunden in
; Stunden, Minuten und Sekunden um (hh:mm:ss-Format).

MsgBox % FormatiereSekunden(7384)  ; 7384 = 2 Stunden + 3 Minuten + 4 Sekunden. Rückgabewert: 2:03:04

FormatiereSekunden(AnzahlAnSekunden)  ; Wandelt eine bestimmte Zahl in das hh:mm:ss-Format um.
{
    Zeit = 19990101  ; *Mitternacht* eines beliebigen Datums.
    Zeit += %AnzahlAnSekunden%, seconds
    FormatTime, mmss, %Zeit%, mm:ss
    return AnzahlAnSekunden//3600 ":" mmss
    /*
    ; Im Gegensatz zur oberen Methode würde die folgende nicht mehr als 24 Stunden im Wert von Sekunden unterstützen:
    FormatTime, hmmss, %Zeit%, h:mm:ss
    return hmmss
    */
}