Announcement

Collapse
No announcement yet.

Zeitzonen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zeitzonen?

    Hallo!

    Ich bin gerade dabei in Tool zu schreiben welche verschiedenste Zeit/Datumsformate konvertiert.
    Steh aber noch ganz am Anfang.
    Ich würde gerne meine berechnungen auf utc-basis durchführen und mich anschließend mit zeitzonen/sommerzeit/winterzeit herumschlagen.

    nun bin ich gerade ein wenig verwirrt.
    time(0) liefert mir doch die unixzeit in UTC warum sind nun aber alle ausgaben anders?
    ich mein der unterschied von gmtime zu localtime ist korrekt aber ich würde gerne haben das die zeit in UTC folgende ist die ich erstellt habe(also 15:22:13)

    Code:
    int main() {
    	time_t t= makeTime(2012, 10,18,15,22,13);
    
    	printDate(t); // Ausgabe: Thu Oct 18 16:22:13 2012
    	printDate(mktime(gmtime(& t))); // Ausgabe: Thu Oct 18 14:22:13 2012
    	printDate(mktime(localtime(& t))); // Ausgabe: Thu Oct 18 16:22:13 2012
    
    	t = time(0); //Akutelle zeit auf meinem Rechner
    	printDate(t); // Ausgabe: Thu Oct 18 16:37:08 2012
    	printDate(mktime(gmtime(& t))); // Ausgabe: Thu Oct 18 14:37:08 2012
    	printDate(mktime(localtime(& t))); // Ausgabe: Thu Oct 18 16:37:08 2012
    }
    time_t makeTime(int year, int month, int day, int hour, int min, int sec){
    	struct tm t;
    	t.tm_year=year-1900;
    	t.tm_mon=month-1;
    	t.tm_mday=day;
    	t.tm_hour=hour;
    	t.tm_min=min;
    	t.tm_sec=sec;
    
    	return mktime(&t);
    }
    void printDate(time_t unix_time){
    	std::cout << ctime(&unix_time) << std::endl;
    }
    Zuletzt editiert von Da_Flo; 18.10.2012, 16:46.

  • #2
    http://www.weltzeituhr.com/infos/utc.shtml

    Konvertiert eine Zeitangabe in UTC. Nun wenn du die Zeit deines Rechners abzüglich Sommerzeit und Abweichung von GMT vorgibst, ist diese nun mal 2 Std unterschied
    Christian

    Comment


    • #3
      ja die letzten 3 ausgaben passen e.
      Mein problem ist die erstellte zeit, wo ich das tm struct selber beschreibe.

      bleiben wir mal bei den ersten zeilen:

      warum bekomme ich bei
      Code:
              time_t t= makeTime(2012, 10,18,15,22,13);
      	printDate(t); // Ausgabe: Thu Oct 18 16:22:13 2012
      die falsche Uhrzeit?
      Ich erkenne keinen Grund warum er da eine Stunde hinzu addieren sollte?!

      EDIT:

      Ich hab mir nun mal t einfach so ausgeben lassen das währe dan: 1350573733
      was laut http://www.onlineconversion.com/unix_time.htm dem datum Thu, 18 Oct 2012 15:22:13 GMT entspricht. Das währe das richtige datum, aber warum gibt er mir das falsche aus?
      Zuletzt editiert von Da_Flo; 18.10.2012, 17:40.

      Comment


      • #4
        Sommerzeit +1
        Christian

        Comment

        Working...
        X