AGB  ·  Datenschutz  ·  Impressum  







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

Abweichung von UTC bekommen

Ein Thema von Andreas L. · begonnen am 24. Mai 2007 · letzter Beitrag vom 30. Mai 2007
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Abweichung von UTC bekommen

  Alt 24. Mai 2007, 12:25
Zitat von Andreas L.:
Auf den von dir verlinkten Artikel war ich ja schon. Aber dort steht nirgendwo was wie man herausbekommt ob gerade Sommer- oder Winterzeit ist. Wie lautet denn die benötigte Funktion?
*mit-dem-Kopf-schüttel*:
Zitat:
Return Value

If the function succeeds, it returns one of the following values.
TIME_ZONE_ID_UNKNOWN
TIME_ZONE_ID_STANDARD
TIME_ZONE_ID_DAYLIGHT
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#12

Re: Abweichung von UTC bekommen

  Alt 24. Mai 2007, 12:33
Ich dachte immer DayLight heißt Tageslicht
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#13

Re: Abweichung von UTC bekommen

  Alt 24. Mai 2007, 12:37
*den Namen zu "René Descartes" wechsel*

Die Sommerzeit heißt im Englischen "Daylight Saving Time" oder kurz DST.

*wieder Benjamin bin*
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Abweichung von UTC bekommen

  Alt 24. Mai 2007, 12:53
Zitat von Andreas L.:
Ich dachte immer DayLight heißt Tageslicht
Nun ja, wenn man seinen Kopf etwas bemüht, dann könnte man zu dem Schluss kommen, dass es wohl keine Zeitzone geben wird, die eine Tag- und Nachtzeit hat. Und demzufolge es sich eigentlich nur um die Sommerzeit handeln kann.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#15

Re: Abweichung von UTC bekommen

  Alt 24. Mai 2007, 13:20
Hab den Code jetzt ein bisschen modifiziert. Bekomme jetzt aber -2 Stunden:

Delphi-Quellcode:
function TXSPF.GetTimeZoneBias:String;
var
  tzi : TTimeZoneInformation;
begin
   case GetTimeZoneInformation(tzi) of
      TIME_ZONE_ID_STANDARD:
         result := intToStr(tzi.Bias div 60);

      TIME_ZONE_ID_DAYLIGHT: // Sommerzeit
         Result := IntToStr((tzi.Bias + tzi.DaylightBias) div 60);
   else
      Result := '00';
   end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Abweichung von UTC bekommen

  Alt 24. Mai 2007, 13:46
Man vergleiche:
shmia:
Delphi-Quellcode:
function GetTimeZoneBias:TDateTime;
const
   MINUTES_PER_DAY = 24.0 * 60.0;
var
  tzi : TTimeZoneInformation;
begin
   case GetTimeZoneInformation(tzi) of
      TIME_ZONE_ID_STANDARD:
         result := (tzi.Bias) / MINUTES_PER_DAY;

      TIME_ZONE_ID_DAYLIGHT: // Sommerzeit
         Result := (tzi.Bias+tzi.DaylightBias) / MINUTES_PER_DAY;
   else
      Result := 0.0;
   end;
end;
du:
Delphi-Quellcode:
function TXSPF.GetTimeZoneBias:String;
var
  tzi : TTimeZoneInformation;
begin
   case GetTimeZoneInformation(tzi) of
      TIME_ZONE_ID_STANDARD:
         result := intToStr(tzi.Bias div 60);

      TIME_ZONE_ID_DAYLIGHT: // Sommerzeit
         Result := IntToStr((tzi.Bias + tzi.DaylightBias) div 60);
   else
      Result := '00';
   end;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#17

Re: Abweichung von UTC bekommen

  Alt 24. Mai 2007, 14:11
Wenn ich div (24 * 60) verwende, bekomme ich als Ergebniss 30.
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#18

Re: Abweichung von UTC bekommen

  Alt 24. Mai 2007, 15:08
Hi,

ggf wäre noch folgendes zu beachten:

GetTimeZoneInformation gibt aktuellen Bias also passend zum Systemdatum zurück.
Das wäre heute den 24.05.2007 die Sommerzeit, also +02:00.

Wenn der HEUTE zu konvertierende Zeitpunkt z.B. der 18.02.2007 16:30 ist, so
galt am 18.02.2007 aber die Normal(Winter)zeit also +01:00.
18.02.2007 16:30 --> "18.02.2007T16:30:00+02:00" wär damit falsch!

Besonders interessant wird die Geschichte in den Nächten der Umstellung.

Aber vielleicht denke ich ja auch zu komplizert?!?

alex
Angehängte Dateien
Dateityp: pas timezoneutils_148.pas (4,4 KB, 60x aufgerufen)
Alexander
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#19

Re: Abweichung von UTC bekommen

  Alt 24. Mai 2007, 15:47
Die Unit beinhaltet genau das was ich brauche: DateTime2XML und wieder zurück

Danke. Darf man die mit einer OpenSource-Komponente weitergeben?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#20

Re: Abweichung von UTC bekommen

  Alt 24. Mai 2007, 15:50
Zitat von Andreas L.:
Hab den Code jetzt ein bisschen modifiziert.
Ich fand den Code vorher besser!!
Wichtig ist auch die Formel : UTC = lokaleZeit + GetTimeZoneBias
Folgende Zeile zeigt die Zeit nach UTC an:
ShowMessage(DateTimeToStr(Now + GetTimeZoneBias)+ '[UTC]'); Der Abstand zwischen UTC und Lokaler Zeit ist:
lokaleZeit - UTC = -GetTimeZoneBias
Man beachte das Minuszeichen das sich nach der Formelumstellung ergibt!!
Also alles richtig; man muss es nur richtig interpretieren:
ShowMessage('Zeitunterschied lokale Zeit zu UTC: ' +TimeToStr(-GetTimeZoneBias));
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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:09 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