Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi grr.... Weltzeit Probleme... (https://www.delphipraxis.net/24168-grr-weltzeit-probleme.html)

Skyruner2 16. Jun 2004 15:45


grr.... Weltzeit Probleme...
 
also ich brauche nen prog das mir sagt wie spät(stunde) es ist in der Zeitzone UTC+10. Dieses Programm soll überall auf der Welt laufen können, und gegeben das man die richtigen regional Settings hat, soll es die aktuelle stunde in UTC+10 angeben...

wie mache ich das?

ich hab’s mit TimeZoneBias versucht, aber geht irgendwie net:
Delphi-Quellcode:
time2set:=houroftheday(TimeZoneBias+(time()))+10
mit OffsetFromUTC bin ich auch nicht weiter gekommen.

:wall: :cry:

shmia 16. Jun 2004 16:06

Re: grr.... Weltzeit Probleme...
 
Also SysUtils.Now liefert die die aktuelle lokale Systemzeit.
Wenn dir bekannt ist, dass wir in Deutschland gerade bei UTC+2 sind, dann musst du 2 Stunden
abziehen um zur UTC zu kommen:
Delphi-Quellcode:
// 2 Stunden zurück
utczeit := SysUtils.Now - 2.0*(1.0/24.0);
Auch die Datumsgrenze ist kein Problem, wenn man die Funktion Now() anstatt Time() verwendet.
Bei der Ausgabe der Zeit hast du es in der Hand, ob du nur die Uhrzeit oder auch zusätzlich das
Datum anzeigen möchtest.

S2B 16. Jun 2004 16:09

Re: grr.... Weltzeit Probleme...
 
Zitat:

Zitat von shmia
Also SysUtils.Now liefert die die aktuelle lokale Systemzeit.
Wenn dir bekannt ist, dass wir in Deutschland gerade bei UTC+2 sind, dann musst du 2 Stunden
abziehen um zur UTC zu kommen:

Aber dann geht das ja nicht, wenn das Programm auf einem Rechner läuft, auf dem Englische Systemzeit eingestellt ist, oder? :gruebel:

Skyruner2 16. Jun 2004 16:28

Re: grr.... Weltzeit Probleme...
 
Zitat:

Zitat von S2B
Zitat:

Zitat von shmia
Also SysUtils.Now liefert die die aktuelle lokale Systemzeit.
Wenn dir bekannt ist, dass wir in Deutschland gerade bei UTC+2 sind, dann musst du 2 Stunden
abziehen um zur UTC zu kommen:

Aber dann geht das ja nicht, wenn das Programm auf einem Rechner läuft, auf dem Englische Systemzeit eingestellt ist, oder? :gruebel:

stimmt, und D is GMT bzw UTC +1.. nicht wie OffsetFromUTC ergiebt(+2)..

shmia 16. Jun 2004 16:35

Re: grr.... Weltzeit Probleme...
 
Zitat:

Zitat von S2B
Zitat:

Zitat von shmia
Also SysUtils.Now liefert die die aktuelle lokale Systemzeit.
Wenn dir bekannt ist, dass wir in Deutschland gerade bei UTC+2 sind, dann musst du 2 Stunden
abziehen um zur UTC zu kommen:

Aber dann geht das ja nicht, wenn das Programm auf einem Rechner läuft, auf dem Englische Systemzeit eingestellt ist, oder? :gruebel:

Klar die 2 Stunden waren ja nur als Beispiel gedacht.
Noch geschickter geht es vielleicht so:
Delphi-Quellcode:
// liefert die aktuelle Systemzeit in Coordinated Universal Time (UTC)
function NowUTC: TDateTime;
var
  SystemTime: TSystemTime;
begin
  GetSystemTime(SystemTime);
  with SystemTime do
    Result := EncodeDate(wYear, wMonth, wDay) +
      EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
end;
Dann ist UTC+10 ganz leicht zu berechnen mit:
Delphi-Quellcode:
function NowUTC_TZ(timezone:integer):TDateTime;
begin
   Assert((timezone >= 12) and (timezone <= 12), 'Invalid Timezone');
   Result := NowUTC+ timezone*(1.0/24.0);
end;

Skyruner2 16. Jun 2004 22:08

Re: grr.... Weltzeit Probleme...
 
Super DANKE!!!!

habs nen bissel geändert:
Delphi-Quellcode:
        begin
          GetSystemTime(SystemTime);
          with SystemTime do
            Result := houroftheday((EncodeDate(wYear, wMonth, wDay) +
                      EncodeTime(wHour, wMinute, wSecond, wMilliseconds))+
                      11*(1.0/24.0));
        end
und funktioniert SUPER!!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:05 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