mikrocontroller.net

Forum: PC-Programmierung Unix timestamp


Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich brauche für eine Berechnung den Unixtimestamp vom 1.1.1984 00:00:00.
Auf der Seite:
http://www.onlineconversion.com/unix_time.htm
bekomme ich dafür:
441763200
geliefert.

Wenn ich jetzt in ein C-Programm auf einem PC:
time_t t;
t = 441763200L;
char* date = ctime(&t); 
printf("%s\n", date);

bekomme ich
"Sun Jan 01 01:00:00 1984"
ausgegeben.

Wenn ich in diesem Programm über die tm-Struktur das Datum einstelle und 
dann mittels
 t = mktime(&mt);
einen timestamp generiere, bekomme ich 441759600.

Welcher Wert ist richtig? Ich dachte der timestamp beachtet nicht 
Sommer/Winterzeit.

Gruß

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeitzone? Unix-Timestamp ist UTC bzw. GMT. Die auf Deinem Rechner aber 
dürfte GMT+1 (MEZ) sein.

Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich habe ich in der tm Struktur die Umstellung mit
mt.tm_isdst = 0;
ausgestellt.
Ich will auf jeden Fall auch eine UTC Zeit erhalten.
Bei ctime() lässt sich das Verhalten leider garnicht umstellen.

Autor: Niklas O. (nevm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Werner,

ctime() macht dasselbe wie asctime(localtime()), konvertiert also
wie Rufus schon sagt die Zeit in Deine Zeitzone.

Du suchst gmtime().  Also asctime(gmtime()).

Niklas

Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah, Danke.
Daran lag es.

Gruß

Autor: JonyGreen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
you can try this free online timestamp 
converter(http://www.online-code.net/unix-timestamp.html) to get a unix 
time.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Those of us who have sat six years in front of their keyboards will 
surely be quite happy about this kind of ... closure.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.