AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi DateTime aus String. Welches ist es denn nun?
Thema durchsuchen
Ansicht
Themen-Optionen

DateTime aus String. Welches ist es denn nun?

Ein Thema von BenneX · begonnen am 24. Jul 2014 · letzter Beitrag vom 24. Jul 2014
Antwort Antwort
BenneX

Registriert seit: 9. Jul 2014
21 Beiträge
 
#1

DateTime aus String. Welches ist es denn nun?

  Alt 24. Jul 2014, 12:59
Delphi-Version: XE5
Hallo Leute,

Ich habe das Datum und die Uhrzeit im folgenden Format (als String) gegeben: 07-24 13:38:35
Mit welcher von den vielen Funktionen kann ich nun dem Compiler vorgeben in welchem Format der String ist (bspw. %m-%d), damit dieser ein TDateTime ausgibt?

Grüße,
Bennex!

Geändert von BenneX (24. Jul 2014 um 13:02 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#2

AW: DateTime aus String. Welches ist es denn nun?

  Alt 24. Jul 2014, 13:06
Mit diesem Datumsformat hätte es nie ein Y2K Problem gegeben

Eine der Lösungen wäre DateUtils.EncodeDateTime, dazu muss nur mit Copy(...) der String in die Komponenten zerlegt und diese dann mit StrToInt umgewandelt werden.

function EncodeDateTime ( const Year, Month, Day, Hour, Min, Sec, MSec : Word ) : TDateTime;
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#3

AW: DateTime aus String. Welches ist es denn nun?

  Alt 24. Jul 2014, 13:06
Na du gehst in die OH (oder schaust in den RTL-Quellcode) und suchst dir aus den DateTime-Funktionen (siehe SysUtils und DateUtils) die Passende aus.

Input: String (dein Datums-String) und ein Format-String, mit deinem gewünschten Format, und eventuell noch ein FormatSettings (bzw. der Format-String im FormatSettings)
Output: TDateTime

Also die Umkehrfunktion von FormatDateTime.

[add] Falls es sowas nicht gibt, dann der Vorschlag von mjustin.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Jul 2014 um 13:11 Uhr)
  Mit Zitat antworten Zitat
ChristianG

Registriert seit: 8. Jul 2014
97 Beiträge
 
Delphi XE6 Starter
 
#4

AW: DateTime aus String. Welches ist es denn nun?

  Alt 24. Jul 2014, 13:14
Delphi-Quellcode:
 lblBUhrzeit.text:= FormatDateTime('hh:nn',bdatumzeit) ;
   lblBDatum.Text := FormatDateTime('dd.mm.yyyy',bdatumzeit) ;
Hilft das
Christian
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#5

AW: DateTime aus String. Welches ist es denn nun?

  Alt 24. Jul 2014, 13:21
6, setzen

Er braucht das andersrum.


FormatDateTime -> F1 -> Link zu "Routinen für die Typumwandlung" oder "Unterstützung für Datum und Uhrzeit" -> StrToDateTime?
Man muß nur noch schauen ob es das Short- oder LongDateFormat verwendet und ob da drin das gewünschte Format untersützt wird.
http://www.delphipraxis.net/103391-p...odatetime.html
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (24. Jul 2014 um 13:28 Uhr)
  Mit Zitat antworten Zitat
ChristianG

Registriert seit: 8. Jul 2014
97 Beiträge
 
Delphi XE6 Starter
 
#6

AW: DateTime aus String. Welches ist es denn nun?

  Alt 24. Jul 2014, 13:29
Das kann man ja wieder in ein String umwandeln, so habe ich es zumindest gemacht


nction TAppseite1.GetShowDateTime(aDateTime: string): TDateTime;
var sDate, sTime : string;
// FFormatSettings : TFormatSettings;
begin
// input '2004-01-01 14:30'
// output Datum/Uhrzeit als TDateTime

//FFormatSettings := TFormatSettings.Create();

FormatSettings.ShortDateFormat := 'YYYY-MM-DD';
FormatSettings.ShortTimeFormat := 'HH:NN';
FormatSettings.DateSeparator := '-';

sDate := LeftStr(aDateTime, 10);
sTime := RightStr(aDateTime, 5);

result := StrToDate(sDate, FormatSettings) +
StrToTime(sTime, FormatSettings);

end;
Christian
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#7

AW: DateTime aus String. Welches ist es denn nun?

  Alt 24. Jul 2014, 13:33
Er braucht das andersrum.
Er braucht doch nur 86400 Uhrzeiten und 366 Tage auszuprobieren, bis das herauskommt, was er sucht
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: DateTime aus String. Welches ist es denn nun?

  Alt 24. Jul 2014, 13:36
Mit diesem Datumsformat hätte es nie ein Y2K Problem gegeben
Stimmt. Dieses Format gibt nur an das am 24.07 (des aktuellen Jahres/) etwas geschehen ist/immer wieder geschieht.
Für ein definiertes Format zur Übertragung vollkommen ausreichend wenn man eine Übertragungsmedium verwendet welches keine Verweildauern > 1 Jahr annimmt.

Das Format lehnt sich das ISO8601-Format an.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: DateTime aus String. Welches ist es denn nun?

  Alt 24. Jul 2014, 13:37
Ich habe das Datum und die Uhrzeit im folgenden Format (als String) gegeben: 07-24 13:38:35
Ich bevorzuge hier die MJustin Methode, da weiß man was man hat.
(Und beim nächsten mal reißt man sich den A.... dafür auf, daß endlich das ISO-Datum(sformat) verwendet wird)

Gruß
K-H
P.S.
Für ein definiertes Format zur Übertragung vollkommen ausreichend wenn man eine Übertragungsmedium verwendet welches keine Verweildauern > 1 Jahr annimmt.
Sag das bloß nicht, denn "das brauchen wir nie mehr" hab ich schon viel zu oft gehört. Und dann sucht man aus irgendwelchen obskuren Seiteneffekten das richtige Jahr.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (24. Jul 2014 um 13:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: DateTime aus String. Welches ist es denn nun?

  Alt 24. Jul 2014, 15:16
Sag das bloß nicht, denn "das brauchen wir nie mehr" hab ich schon viel zu oft gehört. Und dann sucht man aus irgendwelchen obskuren Seiteneffekten das richtige Jahr.
Das Format ist z.B. Angaben der Art "01-06" oder "12-24" günstig da diese ja für jedes Jahr gültig sind.

Das untere Beispiel (wenn ich keinen Weiteren Kontext kenne) "07-24 13:38:35" als

"Am 24.07 um 13:38:35" geschah/geschieht/muss etwas geschehen/... interpretieren.
Das Jahr? ist egal. Wenn ich es vor diesem Datum bekomme würde ich als "jedes Jahr zu diesem Datum/Uhrzeit" oder "das nächste Mal wenn dieser Tag/Monat kommmt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 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