AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit DateTimeToStr

Ein Thema von d7user1 · begonnen am 15. Mär 2014 · letzter Beitrag vom 15. Mär 2014
Antwort Antwort
d7user1
(Gast)

n/a Beiträge
 
#1

Problem mit DateTimeToStr

  Alt 15. Mär 2014, 21:22
hallo, ich rackere mich momentan ab einen fehler zu finden, ich finde ihn aber nicht.

ich hole mir aus dem internet das letzte änderungsdatum einer datei. die übertragung funktioniert und das ergebins ist das folgende:

Timestamp: 1394916584
Lokalzeit: 15.03.2014 21:49:44
UTC / GMT: 15.03.2014 20:49:44
(quelle: http://www.gaijin.at/olsutc.php)

wenn ich mit delphi var MeinTimeStamp: Int64; {* ... *} DateTimeToStr(UnixToDateTime(MeinTimeStamp)) verwende, bekomme ich IMMER die UTC / GMT-Zeit
und meine uhrzeit zeigt somit immer eine stunde "früher" an. wie kann ich das ändern?

Geändert von d7user1 (15. Mär 2014 um 21:27 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Problem mit DateTimeToStr

  Alt 15. Mär 2014, 21:30
Such dir evtl. etwas aus der Funktion heraus:
Delphi-Quellcode:
function FileTimeToDateTime(AFileTime: Windows.TFileTime): TDateTime;
var
  ModifiedTime: Windows.TFileTime;
  SystemTime: Windows.TSystemTime;
begin
  try
    FileTimeToLocalFileTime(AFileTime, ModifiedTime);
    FileTimeToSystemTime(ModifiedTime, SystemTime);
    Result := SystemTimeToDateTime(SystemTime);
  except
    Result := 0;
  end;
end;
  Mit Zitat antworten Zitat
d7user1
(Gast)

n/a Beiträge
 
#3

AW: Problem mit DateTimeToStr

  Alt 15. Mär 2014, 21:53
danke für diesen tipp. aber leider weiß ich nicht wie ich den anwenden kann. mein TimeStamp liegt im Int64-Format vor. ich speichere den einfach nur als Int ab.

wie konvertiere ich den denn, damit der in eine TFileTime-Variable passt?
  Mit Zitat antworten Zitat
d7user1
(Gast)

n/a Beiträge
 
#4

AW: Problem mit DateTimeToStr

  Alt 15. Mär 2014, 22:15
letztendlich lasse ich meinen code einfach so..

ich verstehe eh nichts von lokal, utc usw.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#5

AW: Problem mit DateTimeToStr

  Alt 15. Mär 2014, 22:39
FileTimeToLocalFileTime konvertiert eine UTC-Dateizeit (64-Bit) in lokale Dateizeit. Für Deutschland ist die lokale Zeit (im Winter) UTC +1 Stunde.

FileTimeToSystemTime konvertiert eine Dateizeit (64-Bit) in eine WIN32-API Systemzeit.

SystemTimeToDateTime konvertiert eine WIN32-API Systemzeit in Delphi TDateTime-Zeit.


EDIT:

Stell dir vor du gehst morgens ins Büro und erstellst um 9 Uhr auf deinem Laptop eine Datei. Präsident Obama geht 5 Stunden später in sein Oval Office und erstellt auf seinem Laptop auch eine Datei. Nun werden 5 Jahre später die Dateien verglichen und man stellt fest, dass du in Deutschland und Obama in Amerika zu gleichen Zeit eine Datei erstellt habt, obwohl da 5 Stunden dazwischen liegen. Das würde die ganze Relativitätstheorie durcheinander bringen.

Damit das nicht passiert, werden (zumindest habe ich das so verstanden) in den Zeiten intern die Zeitzonen berücksichtigt. Kommt Obama nun nach Deutschland und stellt seinem Laptop auf die Lokalzeit um, wird man feststellen, dass er seine Datei nach deutscher Zeit um 14 Uhr erstellt hat. Je nachdem, wo du nun mit dem Rechner bist, brauchst du also nur die Zeitzone neu einstellen, und schon wird die Zeit angepasst. Denn 9:00 Uhr in Deutschland ist nicht die gleiche Zeit wie 9:00 Uhr in NY.

Geändert von Popov (15. Mär 2014 um 22:56 Uhr)
  Mit Zitat antworten Zitat
d7user1
(Gast)

n/a Beiträge
 
#6

AW: Problem mit DateTimeToStr

  Alt 15. Mär 2014, 23:04
ich bin mir nicht sicher ob ich das verstanden habe.

ich habe meinem timestamp der aus dem internet kommt nun "1 * 60 * 60" sekunden (1 = aktuelle Zeitzone) hinzugefügt. das ergibt eine stunde.

das ergebnis ist korrekt, aber ist das so ok?

Geändert von d7user1 (15. Mär 2014 um 23:14 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#7

AW: Problem mit DateTimeToStr

  Alt 15. Mär 2014, 23:26
Vielleicht habe ich die Erklärung zu ironisch geschrieben. Am besten liest du dir den Artikel durch: Koordinierte Weltzeit.
  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 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