Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi DateTime JJMMTT umwandeln in TTMMJJ (https://www.delphipraxis.net/191942-datetime-jjmmtt-umwandeln-ttmmjj.html)

Back2Code 6. Mär 2017 10:13

Delphi-Version: XE7

DateTime JJMMTT umwandeln in TTMMJJ
 
Hallo zusammen,

ich habe hier einen DateTime String im Format "JJMMTT" [170126:0920]: welchen ich gerne in folgendes Format "YYYYMMDD" [26.01.2017:09:20:00] umwandeln würde


http://www.delphipraxis.net/152401-strtodate-ex.html

Hatte ich bei meiner Suche gefunden hat aber nur ohne Zeitangabe geklappt.

himitsu 6. Mär 2017 10:21

AW: DateTime JJMMTT umwandeln in TTMMJJ
 
Du könntest natürlich erstmal die beiden Strings mit Datum und Uhrzeit extrahieren, sie einzeln decodieren, zusammenrechnen und dann gemeinsam neu encodieren.

Das Hauptproblem ist halt, dass die Standard-Dekodierungsfunktionen von Delphi die FormatStrings ignorieren und nur eine Hand voll fest vordefinierter Formate unterstützen.


PS: YYYYMMDD -> 26.01.2017:...
YYYYMMDD oder DDMMYYYY? :angle:

Delphi-Quellcode:
Insert(DeinString, '.', 3);
Insert(DeinString, '.', 6);
Insert(DeinString, ':', 12);
DeinString := '20' + DeinString + ':00';
Sorry, aber ich konnte nicht anders. :roll:

Der schöne Günther 6. Mär 2017 10:24

AW: DateTime JJMMTT umwandeln in TTMMJJ
 
Wenn dein Format doch so eindeutig (und einfach) ist dann nimm doch einfach reguläre Ausdrücke, die sind in XE7 schon drin.

=> http://docwiki.embarcadero.com/RADSt...Ausdr%C3%BCcke

=> https://www.delphi-treff.de/tutorial...cke-in-delphi/

t.roller 6. Mär 2017 10:30

AW: DateTime JJMMTT umwandeln in TTMMJJ
 
@TE: Deine Frage ist verwirrend! Lies sie noch mal AUFMERKSAM durch und ändere sie!

Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var dt : TDateTime;
begin // 26.01.2017:09:20:00
dt:= STRTODATETIME('26.01.2017:09:20:00');
caption:= FormatDateTime('YYYYMMDD:hh:nn:ss',dt);
end;

nahpets 6. Mär 2017 11:58

AW: DateTime JJMMTT umwandeln in TTMMJJ
 
In Delphi 7 gibt es
Delphi-Quellcode:
function StrToDateTime(const S: string; const FormatSettings: TFormatSettings): TDateTime;
und
Delphi-Quellcode:
function FormatDateTime(const Format: string; DateTime: TDateTime; const FormatSettings: TFormatSettings): string;
Also bitte entsprechendes Formatsetting definieren und dann sowas aufrufen:
Delphi-Quellcode:
var
          fs   : TFormatSettings;
          Datum : String;
begin
  GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT,fs);
  // Entsprechend Deinen Anforderungen anpassen!
  fs.ShortDateFormat := 'DDMMYY';
  fs.ShortTimeFormat := 'hh:mm';
...
  Datum := FormatDateTime(StrToDateTime('170126 09:20',fs),'YYYYMMDD');
...
Zitat:

Zitat von Back2Code
ich habe hier einen DateTime String im Format "JJMMTT" [170126:0920]: welchen ich gerne in folgendes Format "YYYYMMDD" [26.01.2017:09:20:00]

Die verbalen Beschreibungen passen nicht zu den Beispielen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 Uhr.

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