AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

StrToDate

Ein Thema von API · begonnen am 2. Jun 2008 · letzter Beitrag vom 2. Jun 2008
Antwort Antwort
Seite 2 von 2     12
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: StrToDate

  Alt 2. Jun 2008, 13:48
Zerlege den String und erzeuge daraus das Datum
Markus Kinzler
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#12

Re: StrToDate

  Alt 2. Jun 2008, 14:03
Hallo,

vielleicht hilft dieser Beitrag.

Gruß Hawkeye
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
636 Beiträge
 
#13

Re: StrToDate

  Alt 2. Jun 2008, 14:52
Zitat von Hawkeye219:
Hallo,

vielleicht hilft dieser Beitrag.

Gruß Hawkeye
Unter D6 gibt es, wie bereits geschrieben, leider keine überladene StrToDate() Funktion.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: StrToDate

  Alt 2. Jun 2008, 15:30
Hallo,

das Prinzip bleibt das gleiche:

Delphi-Quellcode:
function StrToDate(s: string): TDateTime;
var
  iMonth, nMonth: Integer;
  sMonth: string;
begin
  iMonth := Pos('mmm', ShortDateFormat);
  if iMonth > 0 then
  begin
    sMonth := Copy(s, iMonth, 3);
    nMonth := Low(ShortMonthNames) + AnsiIndexText(sMonth, ShortMonthNames);
    Str(nMonth:2, sMonth);
    s := StuffString(s, iMonth, 3, sMonth);
  end;
  Result := SysUtils.StrToDate(s);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#15

Re: StrToDate

  Alt 2. Jun 2008, 16:19
Zitat von Delphi-OH:
Beschreibung

Mit StrToDate kann ein String mit einer Datumsangabe geparst werden. Enthält S kein gültiges Datum, wird eine EConvertError-Exception ausgelöst.

Der String muss aus zwei oder drei Zahlen bestehen, die durch das in der globalen Variable DateSeparator bzw. deren TFormatSettings-Entsprechung definierte Zeichen voneinander getrennt sind. Die Reihenfolge von Tag, Monat und Jahr wird von der globalen Variable ShortDateFormat bzw. deren TFormatSettings-Entsprechung bestimmt (mögliche Kombinationen sind M/T/J, T/M/J und J/M/T).
Also wird dir nichst naderes übrig bleiben, als den von marabu vorgeschlagenen Weg zu gehen und den Datumstring entsprechend zu bearbeiten, dass dieser für StrToDate()-Funktion zureichend ist (also NUR Zahlen!)..
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
636 Beiträge
 
#16

Re: StrToDate

  Alt 2. Jun 2008, 18:39
@marabu. Danke! Das funktioniert endlich.

Verwende die Funktion nun so:

Delphi-Quellcode:
function StrToDateTime(s: string): TDateTime;
var
  iMonth, nMonth: Integer;
  sMonth: string;
begin
  iMonth := Pos('mmm', ShortDateFormat);
  if iMonth > 0 then
  begin
    sMonth := Copy(s, iMonth, 3);
    nMonth := Low(ShortMonthNames) + StrUtils.AnsiIndexText(sMonth, ShortMonthNames);
    Str(nMonth:2, sMonth);
    s := StuffString(s, iMonth, 3, sMonth);
  end;
  Result := SysUtils.StrToDateTime(s);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  DateStr: string;
  dtDateTime: TDateTime;
Begin
  DateStr := '23-Mai-2008 17:01';
  DateSeparator := '-';
  TimeSeparator := ':';
  ShortDateFormat := 'dd.mmm.yyyy';
  dtDateTime := StrToDateTime(DateStr);
end;
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:46 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