Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: WMI Datetime 00000000000.00000+000

  Alt 12. Aug 2009, 13:21
Zitat von Jackie1983:
Weil wenn ich die +120 abschneide und versuche ein DateTime draus zu machen,
bekomme ich einen Fehler.
weil es kein TDateTime-Wert ist?

TDateTime ist ja eine Delphi- oder besser Pascaleigene Angelegenheit (Tage seit Beginn der Pascal-Epoche)

dieses ist ein anderer Wert, aber warum es zur exception kommt ... du hast ja bestimmt ein deutsches Windows und da ist das "," als Dezimalseperator definiert ... hier ist es der "." ... du mußt also bei der Umwandlung den Punkt beachten

Code:
00000000000.00000+000
^ Tage seit einem bestimmten Datum (weiß jetzt aber grad nicht seit welchem)
            ^ Anteil des letzen Tages (wie bei TDateTime)
                  ^ Zeitzonenverschiebung in Minuten (UTC)
praktisch kannst du ...
- Zeitzone abschneiden, also ab "+" oder "-"
- StrToFloat (oder ähnliches, wegen dem Punkt ... z.B. S := StringReplace(S, '.', DecimalSeparator, []); )
- die Differenz zwischen WMI-Datetime und Delphi-TDateTime dazurechnen
- eventuell noch die Zeitzone dazurechnen (D := D + Zone/60/24)
- und Ergebnis kann nun als TDateTime angesehn werden
$2B or not $2B
  Mit Zitat antworten Zitat