Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Datum und Uhrzeit in einer Variable (https://www.delphipraxis.net/185510-datum-und-uhrzeit-einer-variable.html)

Union 18. Jun 2015 09:40

AW: Datum und Uhrzeit in einer Variable
 
Zitat:

Zitat von himitsu (Beitrag 1305515)
Delphi-Quellcode:
dateandtime := StrToDate(datestr) + StrToTime(timestr);
dateandtime := StrToDateTime(datestr + ' ' + timestr);
Man kann Strings und Floats per "+" konkatenieren.

Viele Wege führen nach Rom und irgendwann kommt man schon an, egal wie rum.
Speichertechnisch ist Ersteres schöner.

Das kann aber, abhängig von den Regionaleinstellungen, zu wirklich unangenehmen Problemen führen.

himitsu 18. Jun 2015 09:52

AW: Datum und Uhrzeit in einer Variable
 
Eigentlich nicht, dase die StrToXxx-Funktionen echt schrottig sind.
Die ignorieren Settings und haben als Trenner immer ein Leerzeichen. :wall:

Popov 18. Jun 2015 11:31

AW: Datum und Uhrzeit in einer Variable
 
Zitat:

Zitat von himitsu (Beitrag 1305520)
Eigentlich nicht, dase die StrToXxx-Funktionen echt schrottig sind.

Die sind schon ok, man sollte aber nicht die einfache Funktion wählen, sondern die Erweiterte. Dann klappt das auch.

himitsu 18. Jun 2015 12:17

AW: Datum und Uhrzeit in einer Variable
 
Delphi-Quellcode:
var
  FS: TFormatSettings;
  D: TDateTime;
  S: string;
begin
  FS := TFormatSettings.Create;
  FS.LongDateFormat := 'YYYYMMDD';
  FS.LongTimeFormat := 'HHMMSSZZZZ';
  FS.ShortDateFormat := FS.LongDateFormat;
  FS.ShortTimeFormat := FS.LongTimeFormat;

  D := Now;

  Memo1.Lines.Add(FormatDateTime(FS.LongDateFormat + FS.LongTimeFormat, D, FS));
  Memo1.Lines.Add('');

  S := DateTimeToStr(D, FS);
  Memo1.Lines.Add(S);
  try
    D := StrToDateTime(S, FS);
    Memo1.Lines.Add(DateTimeToStr(D, FS));
  except
    Memo1.Lines.Add('Error: StrToDateTime');
  end;
  Memo1.Lines.Add('');

  FS.LongDateFormat := 'YY-MM-DD';
  FS.DateSeparator  := '-';
  FS.ShortDateFormat := FS.LongDateFormat;

  S := DateToStr(D, FS);
  Memo1.Lines.Add(S);
  try
    D := StrToDate(S, FS);
    Memo1.Lines.Add(DateToStr(D, FS));
  except
    Memo1.Lines.Add('Error: StrToDate');
  end;
  Memo1.Lines.Add('');

  FS.LongDateFormat := 'YY-DD-MM';
  FS.DateSeparator  := '-';
  FS.ShortDateFormat := FS.LongDateFormat;

  S := DateToStr(D, FS);
  Memo1.Lines.Add(S);
  try
    D := StrToDate(S, FS);
    Memo1.Lines.Add(DateToStr(D, FS));
  except
    Memo1.Lines.Add('Error: StrToDate');
  end;
  Memo1.Lines.Add('');

  FS.LongDateFormat := 'YY~MM~DD';
  FS.DateSeparator  := '~';
  FS.ShortDateFormat := FS.LongDateFormat;

  S := DateToStr(D, FS);
  Memo1.Lines.Add(S);
  try
    D := StrToDate(S, FS);
    Memo1.Lines.Add(DateToStr(D, FS));
  except
    Memo1.Lines.Add('Error: StrToDate');
  end;
  Memo1.Lines.Add('');


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:10 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz