boost::local_time => Somer- und Winterzeit
-
Hallo zusammen,
ich hab mal ne Frage zu der Lokalzeitberechung, wie sie von boost::local_time durchgeführt wird.Wenn ich in ein local_time Objekt den "26.10.2008 0:0:0" reinstecke und dann um einen Tag weitergehe, lande ich nicht wie von mir erwartet, beim "27.10.2008 0:0:0", sondern bei "26.10.2008 23:0:0".
Scheinbar hat das "local_time" Objekt den Zeitwechsel erkannt und von meinem Tag die eine Stunde Differenz zwischen Sommer- und Winterzeit abgezogen.
Für alle die das mal ausprobieren möchten, hier ein kleines Beispiel:#include <iostream> #include <boost/date_time/local_time/local_time.hpp> #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/date_time/date.hpp> #include <boost/date_time/date_duration.hpp> #include <boost/date_time/time_duration.hpp> #include <boost/date_time/gregorian/greg_duration_types.hpp> #include <boost/date_time/local_time/local_time.hpp> int main() { boost::local_time::time_zone_ptr zone(new boost::local_time::posix_time_zone("CET+01CEST+01,M3.5.0/02:00,M10.5.0/03:00")); boost::local_time::local_date_time localtime(boost::gregorian::date(2008, 10, 26), boost::posix_time::time_duration(0, 0, 0), zone, true); /// Ausgabe: 2008-Oct-26 00:00:00 CEST std::cout << localtime << std::endl; /// Hier einen Tag hochzählen localtime += boost::gregorian::days(1); /// Nun ist die Ausgabe: 2008-Oct-26 23:00:00 CET std::cout << localtime << std::endl; }Mach ich nun einen Denkfehler?
Mir kann doch schnuppe sein, ob in den 24 Stunden, die ich weiterwandere ein Zeitwechsel bevorsteht.
Ich will doch den "27.10.2008 0:0:0" haben.Weiß jemand, wie man dieses "Feature" deaktivieren kann?
Es wäre natürlich genauso gut, wenn mir jemand sagen könnte, wo mein Denkfehler ist, falls ich einen gemacht habe.Bis dann,
Bastian