AGB  ·  Datenschutz  ·  Impressum  







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

Unix Timestamp

Ein Thema von horst · begonnen am 28. Mär 2005 · letzter Beitrag vom 28. Mär 2005
Antwort Antwort
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#1

Unix Timestamp

  Alt 28. Mär 2005, 19:59
Wenn ich die Uhrzeit 19:45h per DateTimeToUnix umwandel, bekomme ich auf dem Server 21:45h angezeigt, jemand eine Ahnung warum?

Delphi-Quellcode:
const
  // Sets UnixStartDate to TDateTime of 01/01/1970
  UnixStartDate: TDateTime = 25569.0;

function DateTimeToUnix(ConvDate: TDateTime): Longint;
begin
  //example: DateTimeToUnix(now);
  Result := Round((ConvDate - UnixStartDate) * 86400);
  form1.edit17.text:=inttostr(Result);
end;
//DateTimeToUnix(now);
Kann das am Server liegen oder am Script?

Grüße
Horst
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#2

Re: Unix Timestamp

  Alt 28. Mär 2005, 20:19
Wenn der Server in Dtl. steht, dann ist er GMT+1+DST (DST = +1)

Also stimmt die Ausgabe ... jetzt mußt du entsprechend der Richtung in die du konvertierst, entweder vor oder nach der Abfrage in oder von GMT von oder nach Lokalzeit konvertieren.

Ich vergaß: DST = Daylight Saving Time (auch als Sommerzeit bekannt).
  Mit Zitat antworten Zitat
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Unix Timestamp

  Alt 28. Mär 2005, 20:38
Aha...hmm, wie muss ich das nun machen, ich versteh das grad nicht ganz.
DST = Daylight Saving Time, ich habe hier schon die Sommerzeit.
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#4

Re: Unix Timestamp

  Alt 28. Mär 2005, 20:43
Warum hast du eine eigene DateTimeToUnix Funktion gemacht? In der Unit "dateutils" gibt es schon eine fertige, kannst dazu auch mal in der OH nachsehen.

MfG Pr0g
  Mit Zitat antworten Zitat
Mephistopheles
(Gast)

n/a Beiträge
 
#5

Re: Unix Timestamp

  Alt 28. Mär 2005, 20:46
FileTimeToLocalFileTime() oder LocalFileTimeToFileTime() benutzen. Allerdings muß dazu die Zeit vorher in dem Format vorliegen, welches Windows versteht (eben FILETIME).
  Mit Zitat antworten Zitat
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Unix Timestamp

  Alt 28. Mär 2005, 21:13
Ich habs nun raus, vielen Dank für eure Hilfe
  Mit Zitat antworten Zitat
moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#7

Re: Unix Timestamp

  Alt 28. Mär 2005, 21:24
Wäre schön, wenn du die Lösung posten würdest, dann können auch andre davon profitieren
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat
horst

Registriert seit: 1. Jul 2003
347 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Unix Timestamp

  Alt 28. Mär 2005, 21:40
Gerne

Delphi-Quellcode:
function TimeStampHumanToUnix(const HumanStamp: tDateTime;
UseBias: boolean): cardinal;
var
iTime: integer;
hh, mm, ss, ms: word;
TZI: TTimeZoneInformation;

const
FirstOf1970 = 25569; //[s] seit 30.12.1899 bis 01.01.1970 (WinZeit -> UnixZeit)
OneDay = 86400; //in [s]
OneHour = 3600; //in [s]
OneMinute = 60; //in [s]

begin
Result := 0;

case GetTimeZoneInformation(TZI) of
$FFFFFFFF: UseBias := False;
end;

DecodeTime(HumanStamp, hh, mm, ss, ms);

{ Tage seit 1.1.1970 in Sekunden } 
iTime := (Trunc(HumanStamp) - FirstOf1970) * OneDay;
{ Stunden und Minuten und Sekunden aufaddieren } 
iTime := iTime + (hh * OneHour);
if UseBias
then iTime := iTime + ((mm + TZI.Bias + TZI.DaylightBias) * OneMinute)
else iTime := iTime + (mm * OneMinute);
iTime := iTime + ss;
if iTime < 0 then iTime := 0;
Result := iTime;

end;
  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 17:51 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