Konvertierungsfunktion zwischen verschiedenen Zeittypen DateTimeToFileDate-Funktion: Definition: DateTimeToFileDate(DateTime: TDateTime): Integer Funktion: Konvertieren Sie eine Zeit vom Typ TDateTime in eine Zeit in einer DOS-Umgebung. Die Zugriffsmethode für die Zeit in einer DOS-Umgebung unterscheidet sich vom Typ TdateTime in der VCL. Um die Konsistenz der Zeit zu gewährleisten, müssen Sie die Funktion DateTimeToFileDate verwenden Für die Konvertierung ist der zurückgegebene Ganzzahlwert der Wert, der zur Beschreibung der Zeit unter Dos verwendet wird. DateTimeToSystemTime-Prozess: Definition: PRocedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime); Funktion: Konvertieren einer Zeit vom Typ TDateTime in den von der Win-API-Funktion verwendeten TSystemTime-Typ, der bei Verwendung der WinApi-Funktion zum Manipulieren der Zeit verwendet wird. SystemTimeToDateTime-Funktion: Definition: function SystemTimeToDateTime(const SystemTime: TSystemTime): TDateTime; Funktion: Konvertieren Sie eine in der WinApi-Funktion erhaltene TSysTemTime-Typnummer in den TDateTime-Typ. DateTimeToTimeStamp-Funktion: TimeStampToDateTime Funktion: Definition: DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp; Funktion TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime; Funktion: wird zum Konvertieren zwischen TDataTime-Typ und TTimeStamp verwendet. TDataTime verwendet ein Double, um eine Zeit zu beschreiben, während TTimeStamp jeweils zwei ganze Zahlen verwendet, um die Zeit zu beschreiben. Den Unterschied zwischen den beiden Typen finden Sie im Abschnitt zur Datentypbeschreibung am Anfang des Artikels. EncodeDate-Funktion: Definition: Funktion EncodeDate(Jahr, Monat, Tag: Wort): TDateTime; Funktion: Geben Sie den Wert von Jahr (Jahr), Monat (Monat) und Tag (Tag) ein und geben Sie das Datum als TDateTime-Typ Jahr zurück Bereich Der Wert ist 1-9999, der Monatsbereich ist 1-12 und der Datumsbereich hängt vom aktuellen Monat ab. Wenn der eingegebene Wert außerhalb des Bereichs liegt, wird ein EConvertError generiert. DecodeDate-Prozess: Definition: procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word); Funktion: Geben Sie ein Datum vom Typ TDateTime ein und konvertieren Sie es in einen Wert für Jahr, Monat und Tag. Wenn der Eingabewert 0 oder kleiner als 0 ist, sind Jahr, Monat und Tag alle 0. EncodeTime-Funktion: Definition: EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime Funktion: Stunde (Hour) eingeben, Minute (min), der Wert von Sekunden (Sec) und Mikrosekunden (MSec) gibt eine Zeit vom Typ TDateTime zurück, die eine Dezimalzahl zwischen 0 und 1 ist. Der Wertebereich von Hour ist 0-23, der Wertebereich von Min ist 0-59, der Wertebereich von Sec ist 0-59 und der Wertebereich von MSec ist 0-999. Wenn der Eingabewert den Bereich überschreitet, wird ein EConvertError wird generiert. DecodeTime-Prozess: Definition: procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word); Funktion: Geben Sie eine Zeit ein und konvertieren Sie sie in Stunden (Hour), Minuten (Min), Sekunden (Sec), Mikro Wert in Sekunden (MSec). TDateTime-Typ- und String-Typ-Konvertierungsfunktion: DateTimeToStr-Funktion: DateToStr-Funktion TimeToStr-Funktionsdefinition: function DateTimeToStr(DateTime: TDateTime): string function TimeToStr(Time: TDateTime): string; string; Funktion: Konvertiert eine Zahl vom Typ TDateTime in eine Zeichenfolge, DateTimeToStr konvertiert Datum und Uhrzeit, DateToStr konvertiert nur das Datum und TimeToStr konvertiert nur die Zeit. Der konvertierte Ausgabeeffekt ist YYYY-MD H: M: SStrToDateTime function StrToDate function StrToTime function definition: function StrToDateTime(const S: string): TDateTime; function StrToDate(const S: string): TDateTime(const S: string ) : TDateTime; Funktion: Konvertieren Sie eine Zeichenfolge mit Datums- und Uhrzeitformat in TDateTime, wobei S eine gültige Zeichenfolge sein muss, z. B. das Format JJ-MM-TT HH:MM:SS. Andernfalls wird das EConvertError-Ereignis ausgelöst und eine Fehlermeldung angezeigt aufgefordert. Die Zeichenfolge des Zeitteils muss aus 2 bis 3 numerischen Zeichenfolgen bestehen und durch die in den Windows-Regionaleinstellungen festgelegten Trennzeichen getrennt sein. Die Formatanforderungen müssen den Einstellungen in den Windows-Regionaleinstellungen entsprechen, wobei HH, MM (Stunde, Minute) muss hinzugefügt werden, SS (Sekunde) ist optional, Sie können auch Am und Pm am Ende hinzufügen, um Vormittag und Nachmittag zu unterscheiden. Zu diesem Zeitpunkt geht das System davon aus, dass die 12-Stunden-Darstellung verwendet wird, andernfalls wird dies der Fall sein berücksichtigt, dass die 24-Stunden-Darstellung verwendet wird. Das Format des Datumsteils muss dem kurzen Datumsformat in den Windows-Regionaleinstellungen entsprechen, das ebenfalls aus 2 bis 3 numerischen Zeichenfolgen besteht. Wenn die Zeichenfolge nur 2 Zahlen enthält, wird davon ausgegangen, dass es sich um Monat und Datum handelt Wenn in den regionalen Einstellungen die zweistellige Jahresdarstellungsmethode verwendet wird und das Jahr das aktuelle Jahr ist, verwendet das System die folgende Methode:
| aktuelles Jahr | Startjahr | Grundwert | Geben Sie das Jahr 03 ein | Geben Sie das Jahr 50 ein | Geben Sie das Jahr 68 ein |
| 1998 | 0 | 1900 | 1903 | 1950 | 1968 |
| 2002 | 0 | 2000 | 2003 | 2050 | 2068 |
| 1998 | 50 | 1948 | 2003 | 1950 | 1968 |
| 2000 | 50 | 1950 | 2003 | 1950 | 1968 |
| 2002 | 50 | 1952 | 2003 | 2050 | 1968 |
| 2020 | 50 | 1970 | 2003 | 2050 | 2068 |
| 2020 | 10 | 2010 | 2103 | 2050 | 2068 |
Ermitteln Sie zunächst das Startjahr der zweistelligen Jahreszahl in den Regionaleinstellungen. Wenn der zweistellige Jahresbereich in den Regionaleinstellungen beispielsweise auf 32 Jahre festgelegt ist 0, es handelt sich um ein zweistelliges Jahr. Wenn das Jahr tatsächlich größer als 0 ist, wird der Wert des aktuellen Jahres minus dem Startjahr verwendet größer oder gleich diesem Wert ist, wird davon ausgegangen, dass es sich um dieses Jahrhundert handelt, andernfalls um das nächste Jahrhundert. Geben Sie einige Beispiele an: DateTimeToString-Prozess: FormatDateTime Funktion: Definition: procedure DateTimeToString(var Ergebnis: string; const Format: string; DateTime: TDateTime); function FormatDateTime(const Format: string; DateTime: TDateTime): string; Funktion: Rufen Sie die auszugebende Zeitzeichenfolge ab, indem Sie das Format in der Formatzeichenfolge definieren. Wenn Sie beispielsweise „Heute ist Freitag, der 5. Mai 2002“ ausgeben möchten, können Sie diese beiden Methoden verwenden Der gleiche Effekt besteht nur darin, die Ausgabezeichenfolge über die gemeinsam genutzte Variable abzurufen, der Wert befindet sich im Ergebnis, die andere darin, die Ausgabezeichenfolge über den Rückgabewert abzurufen, der DateTime-Parameter ist der Datumswert, den Sie ausgeben möchten, und Das Format setzt sich aus dem Format-Flag und der zusätzlichen Zeichenfolge zusammen. Die zusätzliche Zeichenfolge ist von „“ umgeben, genau wie die Printf-Funktion in C. Der Formatwert von „Heute ist Freitag, der 5. Mai 2002“ ist beispielsweise „“ Heute ist „jjjj“ Jahr „mm“ Monat „tt“ day ," dddd', yyyy, mm, dd, dddd sind alle Formatbezeichner. Die Erläuterungen zu verschiedenen Formatbezeichnern lauten wie folgt: d: Verwenden Sie eine oder zwei Ganzzahlen, um den Tag (1-31) dd anzuzeigen : Verwenden Sie zwei Ganzzahlen, um den Tag anzuzeigen, verwenden Sie 0, um ihn zu ergänzen (01-31). ddd: Zeigt die aktuelle Wochennummer in abgekürzter Form an. Wenn Windows die englische Version ist, wird sie als angezeigt Mo-So. Wenn es sich um die chinesische Version handelt, ist die Anzeige dieselbe wie bei dddd. dddd: Zeigt die aktuelle Wochennummer im vollständigen Format an. Wenn es sich um die englische Version handelt, wird Montag-Sonntag angezeigt . dddddd: Ausgabe im langen Datumsformat im Gebietsschema. m: Verwenden Sie eine oder zwei Ganzzahlen, um den Monat anzuzeigen (1-12). mm: Verwenden Sie zwei Ganzzahlen, um den Monat anzuzeigen, und verwenden Sie 0, um die weniger als zwei Ziffern (01-12) zu ergänzen. mmm: Verwenden Sie eine Abkürzung, um den Monatsnamen anzuzeigen , die englische Version wird angezeigt Es ist Jan-Dez, die chinesische Version ist die gleiche wie mmmm mmmm: Verwenden Sie die vollständige Methode, um den Monatsnamen anzuzeigen, die englische Version wird als Januar-Dezember angezeigt, die chinesische Version ist Januar bis Dezember JJ : Zeigt das Jahr als zweistellige Ganzzahl (00-99) an. yyyy: Zeigt das Jahr als vierstellige Ganzzahl (0000-9999) an. h: Zeigt die Stunde als ein- oder zweistellige Ganzzahl (0-23) an. hh: Anzeigen als zweistellige Ganzzahl Stunden, wenn weniger als zwei Ziffern vorhanden sind, verwenden Sie 0, um sie zu ergänzen (00-23) n: Verwenden Sie eine oder zwei Ganzzahlen, um Minuten anzuzeigen (0-60) nn : Verwenden Sie zwei Ganzzahlen, um die Minuten anzuzeigen, verwenden Sie 0, um sie zu ergänzen (00-60). s: Verwenden Sie eine oder zwei Ganzzahlen, um Sekunden anzuzeigen (0-60). Wenn es weniger als zwei Ziffern gibt, verwenden Sie 0, um die Minuten zu bilden. Verwenden Sie 0, um (00-60) zu ergänzen. z: Verwenden Sie ein bis zwei ganze Zahlen, um die Anzahl der Millisekunden anzuzeigen (0-999). zzz: Verwenden Sie drei ganze Zahlen um die Millisekunden anzuzeigen, und verwenden Sie 0, um weniger als drei Ziffern (000-999) zu bilden. tt: Zeigt das Datum entsprechend dem Format in den Regionaleinstellungen an. am/pm: Wird für die 12-Stunden-Anzeige verwendet, wobei AM von 0 bis 12 Uhr und pm von 12 bis 0 Uhr bedeutet. Zeitbezogene Variablen: Delphi kapselt verschiedene Informationen zu lokalen Einstellungen und definiert eine Reihe zeitbezogener Variablen: DateSeparator: Char-Datumstrennzeichen, das zur Trennung von Jahren, Monaten und Tagen verwendet wird Stunden, Minuten, Sekunden ShortDateFormat: String Die Definition des kurzen Datumsformats im Gebietsschema. LongDateFormat: Definition des langen Datumsformats im String-Gebietsschema. ShortTimeFormat: Definition des Kurzzeitformats im String-Gebietsschema. LongTimeFormat: Definition des Langzeitformats im String-Gebietsschema. TimeAMString: Zeichenfolge zur Darstellung der Vormittagszeichenfolge TimePMString: Zeichenfolge zur Darstellung der Nachmittagszeichenfolge ShortMonthNames: Array[1..12] von String zur Abkürzung des Arrays der Monatsnamen, das bei Verwendung von FormatDateTime angezeigt wird. Identifizierte Zeichenfolge LongMonthNames : Array[1..12] von String; Ein Array, das zur vollständigen Darstellung des Monatsnamens verwendet wird. Dabei handelt es sich um die durch mmmm angezeigte Zeichenfolge, die bei Verwendung von FormatDateTime angezeigt wird: Array[1..7] von String, das zur Abkürzung des Wochennamens verwendet wird wird bei Verwendung von FormatDateTime die durch ddd identifizierte Zeichenfolge LongDayNames angezeigt: array[1..7] von String; Ein Array, das verwendet wird, um den Namen der Woche vollständig darzustellen. Dies ist die durch ddd identifizierte Zeichenfolge, die bei Verwendung von TwoDigitYearCenturyWindow angezeigt wird: Word = 50;