Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL5 (http://www.expert-advisor.com/forum/forumdisplay.php?f=221)
-   -   Zeit in Unixzeit von StringToTime wandeln verhält sich merkwürdig. (http://www.expert-advisor.com/forum/showthread.php?t=5124)

marquez 22.08.16 03:59

Zeit in Unixzeit von StringToTime wandeln verhält sich merkwürdig.
 
Hallo,

ich habe mir einen kleinen Helfer geschrieben, bei dem ich mit Unixzeit (der einfachheit halber) differenzen ausrechnen will.

Da ich jedoch erst einen datetime erhalte, den ich wandeln muss, habe ich das so gelöst:

Code:

  string newTimeBased  = "2016.06.15 02:44:32";        // NUR ZUM TESTEN !!
  datetime unixTimed  = StringToTime(newTimeBased);    // String zu Datumszeit wandeln
  long unixTime        = (long) unixTimed;              // Und mach Unixzeit raus !

  Print("newTimeBased: " + newTimeBased); 
  Print("unixTimed: " +unixTimed);
  Print("unixTime: " +unixTime);


Als Ausgabe wird mir dann erzeugt:
Code:

2016.08.22 03:49:08.579        UNIX-TIME-HELPER (EURUSD,M1)        strrplce: 2
2016.08.22 03:49:08.579        UNIX-TIME-HELPER (EURUSD,M1)        newTimeBased: 2016.06.15 02:44:32
2016.08.22 03:49:08.579        UNIX-TIME-HELPER (EURUSD,M1)        unixTimed: 2016.06.15 02:44:32
2016.08.22 03:49:08.579        UNIX-TIME-HELPER (EURUSD,M1)        unixTime: 1465958672


Lässt man sich dann hinterher die Unixzeit wieder umrechnen, dann ergibt das dann: 15.06.2016 - 04:44:32

Und das ist, was ich nicht verstehe. Wo kommen die 2 Stunden her ? Ich war immer der festen Meinung, dass was man per (long) abZuUnixZeit übergibt, wird auch genau so übersetzt. Halt wie bei PHP und sonst wo.

Wäre für einen Ansatz dankbar.

traderdoc 22.08.16 10:34

Ich sehe auf meinem iPad nur die Hälfte des Codes, tippe mal bei der Rückrechnung auf den Einfluß der Zeitverschiebung des Brokerservers.

traderdoc

marquez 22.08.16 15:25

Ok,

aber diese Verschiebung erschliesst sich mir nicht so ganz. Gerade nicht mit der Brokerzeit.

Ich habe jetzt mal ein wenig mit der aktuellen Zeiten getestet, also:

TimeCurrent() (Brokerzeit) => 2016.08.22 16:16:45
TimeLocal() (PC zeit) => 2016.08.22 15:16:47

Als unix ergibt es dann => 1471879007
was rückgerechnet ergibt => 2016.08.22 17:16:47

traderdoc 22.08.16 20:49

Also bei mir ergibt

Print("unixDatum: " + TimeToStr(unixTime, TIME_DATE|TIME_MINUTES|TIME_SECONDS));

unixDatum : 2016.06.15 02:44:32

Ich sehe da keine Differenz.

traderdoc

marquez 22.08.16 23:08

Oh nein,

Du hast Recht.....


Das passiert, wenn man die Unixzeit auf einer Webseite seines vertrauens wieder zurückwandeln lässt, ohne es wirklich gegen zu prüfen.

Also, Finger weg von der Seite: http://www.unixtime.de/


Au menno. Manchmal sind die einfachsten Lösungen doch die naheliegendsten.


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:44 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum