FormatTime

Transformiert einen YYYYMMDDHH24MISS-Zeitstempel in ein bestimmtes Datums-/Zeitformat.

FormatTime, AusgabeVar , YYYYMMDDHH24MISS, Format

Parameter

AusgabeVar

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

YYYYMMDDHH24MISS

Wenn leer oder weggelassen, wird standardmäßig die aktuelle Ortszeit verwendet. Andernfalls können Sie den kompletten oder beginnenden Teil eines Zeitstempels im YYYYMMDDHH24MISS-Format angeben. Wenn die Datums- (YYYYMMDD) und/oder Zeitkomponente (HH24MISS) im Zeitstempel ungültig ist (z.B. der 29. Februar eines Nicht-Schaltjahrs), wird das Datum und/oder die Zeit in AusgabeVar weggelassen. Obwohl nur Jahre zwischen 1601 und 9999 unterstützt werden, kann eine formatierte Zeit auch für die Jahre vor 1601 erzeugt werden, solange die Zeitkomponente gültig ist.

Format

Wenn leer oder weggelassen, wird standardmäßig die Zeit gefolgt vom langen Datum verwendet, wobei beide entsprechend der aktuellen Sprach- und Regionseinstellungen des Benutzers formatiert werden. Zum Beispiel: 10:24 Freitag, 30. April 2010

Andernfalls geben Sie eines oder mehrere der folgenden Datums-/Zeitformate an, mit beliebig vielen, direkt geschriebenen Leer- und Satzzeichen dazwischen (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 (abhängig von den aktuellen Sprach- und Regionseinstellungen)
tt Mehrfachzeichen-Zeitmarker wie AM oder PM (abhängig von den aktuellen Sprach- und Regionseinstellungen)

Alleinstehende Formate

Die folgenden Formate sind alleinstehend, d.h. es dürfen keine anderen Formate oder Texte im Format-Parameter angegeben werden. 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 Vollständiges Jahr und Kalenderwoche gemäß ISO 8601. Zum Beispiel: 200453. Wenn die Woche mit dem 1. Januar mindestens vier Tage im neuen Jahr hat, ist sie Woche 1. Andernfalls ist sie die letzte Woche des Vorjahres und die nächste 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

Die folgenden Optionen können im YYYYMMDDHH24MISS-Parameter direkt nach dem Zeitstempel angegeben werden (wenn kein Zeitstempel vorhanden ist, können diese Optionen auch allein stehen). Beachten Sie im folgenden Beispiel, dass zwischen den letzten vier Elementen keine Kommas stehen:

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 für die Formatierung der Zeichenkette verwendet. Geben Sie LSys an, um stattdessen die Sprach- und Regionseinstellungen des Systems zu verwenden. Für andere Sprach- und Regionseinstellungen können Sie den Buchstaben L gefolgt von einem dezimalen oder hexadezimalen Locale-Identifikator (LCID) angeben. Informationen darüber, wie sich ein 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, LF-Zeichen (`n), Schrägstriche, Doppelpunkte, Kommas und andere Satzzeichen müssen hingegen nicht in einfache Anführungszeichen gesetzt werden. Eine Ausnahme bildet das einfache Anführungszeichen selbst: Um es darzustellen, sind vier aufeinanderfolgende einfache Anführungszeichen ('''') erforderlich, oder nur zwei, wenn das Anführungszeichen bereits von einem äußeren Anführungszeichenpaar umschlossen ist.

Wenn Format sowohl Datums- als auch Zeitelemente enthält, dürfen diese nicht vermischt werden. Mit anderen Worten, die Elemente müssen so angeordnet werden, dass die resultierende Zeichenkette in zwei Hälften geteilt werden kann: Eine Zeithälfte und eine Datumshälfte. Zum Beispiel würde die Formatzeichenkette "hh yyyy mm" nicht das erwartete Ergebnis liefern, weil sich ein Datumselement zwischen zwei Zeitelementen befindet.

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

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

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

Wenn Sie stattdessen den umgekehrten Weg gehen wollen, also die Umwandlung einer formatierten Zeichenkette in das YYYYMMDDHH24MISS-Format, schauen Sie sich den folgenden Forumsbeitrag an: 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 liegt in folgender ISO-Jahr-Kalenderwoche: %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% geändert.

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 obigen Methode würde die folgende nicht mehr als 24 Stunden an Sekunden unterstützen:
    FormatTime, hmmss, %Zeit%, h:mm:ss
    return hmmss
    */
}