FormatTime

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

FormatTime, AusgabeVar , YYYYMMDDHH24MISS, Format

Parameter

AusgabeVar

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

YYYYMMDD...

Lassen Sie diesen Parameter leer, um das heutige Datum und die aktuelle Uhrzeit zu verwenden. Ansonsten können Sie den kompletten oder beginnenden 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

Lässt man diesen Parameter weg, wird standardmäßig die Uhrzeit gefolgt vom langen Datum verwendet, die beide gemäß den aktuellen Sprach- und Regionseinstellungen des 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)

Format Beschreibung
d Tag des Monats ohne Null am Anfang (1 – 31)
dd Tag des Monats mit einer Null am Anfang (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 Null am Anfang (1 – 12)
MM Monat mit einer Null am Anfang (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, ohne Null am Anfang (0 – 99)
yy Jahr ohne Jahrhundert, mit einer Null am Anfang (00 – 99)
yyyy Jahr mit Jahrhundert. Zum Beispiel: 2005
gg Zeitrechnung/Ära gemäß den aktuellen Sprach- und Regionseinstellungen des Benutzers (z. B. n. Chr.)

Zeitformate (Groß-/Kleinschreibung-sensitiv)

Format Beschreibung
h Stunde ohne Null am Anfang; 12-Stunden-Format (1 – 12)
hh Stunde mit einer Null am Anfang; 12-Stunden-Format (01 – 12)
H Stunde ohne Null am Anfang; 24-Stunden-Format (0 – 23)
HH Stunde mit einer Null am Anfang; 24-Stunden-Format (00 – 23)
m Minute ohne Null am Anfang (0 – 59)
mm Minute mit einer Null am Anfang (00 – 59)
s Sekunde ohne Null am Anfang (0 – 59)
ss Sekunde mit einer Null am Anfang (00 – 59)
t Einzelzeichen-Zeitmarker wie A oder P (gemäß den aktuellen Sprach- und Regionseinstellungen)
tt Mehrfachzeichen-Zeitmarker wie AM oder PM (gemäß den aktuellen Sprach- und Regionseinstellungen)

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.

Format Beschreibung
(Leer) Lassen Sie Format leer, um die Zeit gefolgt vom langen Datum zu erzeugen. Zum Beispiel: 10:24 Freitag, 30. April 2010
Time Die Uhrzeit gemäß den aktuellen Sprach- und Regionseinstellungen des Benutzers, z. B. 12:04
ShortDate Das kurze Datum gemäß den aktuellen Sprach- und Regionseinstellungen des Benutzers, z. B. 30.04.2010
LongDate Das lange Datum gemäß den aktuellen Sprach- und Regionseinstellungen des Benutzers, z. B. Freitag, 30. April 2010
YearMonth Monat und Jahr gemäß den aktuellen Sprach- und Regionseinstellungen des Benutzers, z. B. April 2010
YDay Tag des Jahres ohne Nullen am Anfang (1 - 366)
YDay0 Tag des Jahres mit Nullen am Anfang (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 keine Kommas zwischen den letzten vier Elementen vorhanden sind:

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, werden die aktuellen Sprach- und Regionseinstellungen des Benutzers zum Formatieren der Zeichenkette herangezogen. Geben Sie LSys an, um stattdessen die Sprach- und Regionseinstellungen des Systems zu nutzen. Für andere Sprach- und Regionseinstellungen können Sie den Buchstaben L und direkt danach einen dezimalen oder hexadezimalen Locale-Identifikator (LCID) angeben. 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:

Tn: Zeitoptionen. Geben Sie für n eine der folgenden Zahlen an:

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ßen Sie sie mit einfachen Anführungszeichen. Zum Beispiel: 'Datum:' MM/dd/yy 'Zeit:' hh:mm:ss tt.

Nicht-alphanumerische Zeichen wie Leerzeichen, Tabulatoren, Zeilenumbruchszeichen (`n), Schrägstriche, Doppelpunkte, Kommas und sonstige Satzzeichen müssen hingegen nicht in einfache Anführungszeichen gesetzt werden. Die Ausnahme ist das einfache Anführungszeichen selbst: Um es darzustellen, benötigen Sie vier aufeinanderfolgende einfache Anführungszeichen (''''), oder nur zwei, wenn das Anführungszeichen bereits von einem äußeren Paar von Anführungszeichen umschlossen ist.

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.

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, Format(), SetFormat, Transform, interne Datums- und Zeitvariablen, FileGetTime

Beispiele

Zeigt verschiedene Verwendungsmöglichkeiten.

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

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

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

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

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

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

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

FormatTime, JahrWoche, 20050101, YWeek
MsgBox Der 1. Januar 2005 hat das folgende Jahr und die Wochennummer nach ISO: %JahrWoche%

Ändert den Zeitstempel einer Datei.

FileSelectFile, DateiName, 3,, Datei auswählen,
if (DateiName = "")  ; Der Benutzer hat keine Datei ausgewählt.
    return
FileGetTime, DateiZeit, %DateiName%
FormatTime, DateiZeit, %DateiZeit%   ; Durch Weglassen des letzten Parameters wird die Uhrzeit und das lange Datum abgerufen.
MsgBox Die ausgewählte Datei wurde zuletzt am %DateiZeit% modifiziert.

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(SekundenAnzahl)  ; Wandelt eine bestimmte Zahl in das hh:mm:ss-Format um.
{
    Zeit := 19990101  ; *Mitternacht* eines beliebigen Datums.
    Zeit += SekundenAnzahl, seconds
    FormatTime, mmss, %Zeit%, mm:ss
    return SekundenAnzahl//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
    */
}