Tech-Ecke / Delphi Inhalt / Datum und Zeit

 

     Datum und Zeit

 

   Zeit- und Datumsformat festlegen

Mit folgenden Anweisungen stellt man sicher, dass das anwendungsinterne Zeit- und Datumsformat immer dem des "Deutschsprachigen Raums" entspricht, gleich welche regionalen Formaten in dem ausführenden Windows gesetzt sind. Auch eigene Kreationen sind möglich.

  DateSeparator := '.';
TimeSeparator := ':';
ShortDateFormat := 'dd.mm.yyyy';  
// z.B. 01.01.2000
ShortDateFormat := 'dd.mmm.yyyy';   // z.B. 01.Jan.2000; mmmm Januar; ddd Mo; dddd Montag...
LongTimeFormat := 'hh:nn:ss';
 

dd = Tag, mm = Monat, yyyy = Jahr
hh = Stunden, nn = Minuten, ss = Sekunden

 

   Aktuelles Datum und/oder Zeit formatiert   ( var d: TDateTime; )

   Showmessage(FormatDateTime('yyyy-mm-dd', Now));
 Showmessage(FormatDateTime('yyyy-mm-dd_hh-nn-ss', Now));
 

   Von Zeit nach String und zurück

Syntax von Zeit und Datum (Datumsformat deutschsprachiger Raum):

TDate -> dd.mm.yyyy        TTime -> hh:mm:ss        TDateTime -> dd.mm.yyyy hh:mm:ss

   Edit1.Text := TimeToStr(TTime);
 Edit1.Text := DateToStr(TDate);
 Edit1.Text := DateTimeToStr(TDateTime);

 TTime := StrToTime('12:00:00');
 TDate := StrToDate('01.01.2000');
 TDateTime := StrToDateTime('01.01.2000 12:00:00')

 

Beispiel: Zeit und Datum ermitteln

   Edit1.Text := TimeToStr(TDateTime(Time)); // gibt die aktuelle Uhrzeit zurück
 
Edit1.Text := DateToStr(TDateTime(Now)); // gibt das aktuelle Datum zurück
 

   String auf Datumsformat prüfen  ( var d: TDateTime; )

   TryStrToDateTime(Edit1.Text, d); // steht im Editfeld ein gültiges Datumsformat, so ist der Rückgabewert true
 

   Tage zwischen zwei Daten ermitteln ( var x: Integer; )

   x := round(TDateTime(Now)-StrToDate('01.01.2000')); // Beispiel mit Datumsformat deutschsprachiger Raum
 Edit1.Text := IntToStr(abs(x));
 

   Aktuelle Zeit in Sekunden ermitteln

  function GetSeconds: Integer;
 begin
   
Result := StrToInt(copy(TimeToStr(TDateTime(Time)),1,2))*3600
    +StrToInt(copy(TimeToStr(TDateTime(Time)),4,2))*60
    +StrToInt(copy(TimeToStr(TDateTime(Time)),7,2))
 end;
 

   Sekunden in Uhrzeit wandeln

  function SecondsToTime(wSeconds: Word): TDateTime;
 begin
    Result := (1 / 24 / 60 / 60) * wSeconds;
 end;
 

   Zeit (Sekunden) zwischen zwei TDateTime's ermitteln  (benötigt DateUtils in Uses)

  var ZeitA, ZeitB: TDateTime;

.
.
.

Edit1.Text := IntToStr(SecondsBetween(ZeitA, ZeitB));  // benötigt DateUtils in Uses

 

 

"Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !"

[letzte Aktualisierung 20.01.2015]