aus Unix timestamp Uhrzeit MESZ/ MEZ machen
Hallo, so bekomme ich aus einem Unix timestamp die "leserliche" UTC-Zeit: date --utc --date "1970-01-01 1276378488 sec" "+%Y-%m-%d %T" Wie die Uhrzeit ist bei Sommerzeit hier in Deutschland aber zwei Stunden hintendran. Wie korrigiere ich das? - Es sollte dann im Winter auch korrekt sein, also nicht einfach 2 Std addieren. Gruss Ekkard -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 13. Juni 2010 23:48 schrieb Ekkard Gerlach
Wie die Uhrzeit ist bei Sommerzeit hier in Deutschland aber zwei Stunden hintendran. Wie korrigiere ich das? - Es sollte dann im Winter auch korrekt sein, also nicht einfach 2 Std addieren.
Hilft date --date "1970-01-01 1276378488 sec" --rfc-3339=seconds ? Gruß Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Son, 13 Jun 2010, Ekkard Gerlach schrieb:
so bekomme ich aus einem Unix timestamp die "leserliche" UTC-Zeit:
date --utc --date "1970-01-01 1276378488 sec" "+%Y-%m-%d %T"
Wie die Uhrzeit ist bei Sommerzeit hier in Deutschland aber zwei Stunden hintendran. Wie korrigiere ich das? - Es sollte dann im Winter auch korrekt sein, also nicht einfach 2 Std addieren.
Zur Formatierung siehe 'man 3 strftime', als Default eignet sich '%c'. ==== ~/bin/epochtodate.pl #!/usr/bin/perl -w use strict; use POSIX qw(strftime); if(scalar @ARGV) { foreach(@ARGV) { print strftime("%a %d.%m.%Y %H:%M:%S %Z\n", localtime($_)); } } else { while(<>) { print strftime("%a %d.%m.%Y %H:%M:%S %Z\n", localtime($_)); } } ==== ==== ~/bin/epochtodate.awk #!/usr/bin/gawk -f BEGIN { if(ARGC > 1) { for(i = 1; i < ARGC; i++) { printf strftime("%a %d.%m.%Y %H:%M:%S %Z\n", ARGV[i]); } exit; } } { printf strftime("%a %d.%m.%Y %H:%M:%S %Z\n", $1); } ==== Ich hätte dann auch noch ne Variante in C ;) Als einfachste Variante geht natürlich ein awk-Einzeiler: awk 'BEGIN{print strftime("%c", 1276378488);}' ggfs. ergänzt um eine passende TZ Variable: $ awk 'BEGIN{print strftime("%c %Z", 1276378488);}' Sat Jun 12 23:34:48 2010 CEST $ TZ=UTC awk 'BEGIN{print strftime("%c %Z", 1276378488);}' Sat Jun 12 21:34:48 2010 UTC $ TZ=America/Vancouver awk 'BEGIN{print strftime("%c %Z", 1276378488);}' Sat Jun 12 14:34:48 2010 PDT $ TZ=UTC awk 'BEGIN{print strftime("%c %Z", 1266368488);}' Wed Feb 17 01:01:28 2010 UTC $ awk 'BEGIN{print strftime("%c %Z", 1266368488);}' Wed Feb 17 02:01:28 2010 CET HTH, -dnh -- This space intentionally left aligned. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Mon 14 Jun 2010 11:38:52 NZST +1200, David Haller wrote:
so bekomme ich aus einem Unix timestamp die "leserliche" UTC-Zeit:
date --utc --date "1970-01-01 1276378488 sec" "+%Y-%m-%d %T"
Als einfachste Variante geht natürlich ein awk-Einzeiler:
Als noch einfachstere Variante nimmst du einfach date: date --date "@1276378488" "+%Y-%m-%d %T" Welches Format Du hinter "+" setzt ist natürlich völlig wurscht. HTH, Volker -- Volker Kuhlmann http://volker.dnsalias.net/ Please do not CC list postings to me. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mon, 14 Jun 2010, Volker Kuhlmann schrieb: [..]
Als noch einfachstere Variante nimmst du einfach date:
date --date "@1276378488" "+%Y-%m-%d %T"
Welches Format Du hinter "+" setzt ist natürlich völlig wurscht.
Geht halt nur mit neueren GNU date, die awk-Version braucht GNU awk, die perl-Version ist portabel. $ date --date "@1276378488" "+%Y-%m-%d %T" date: invalid date `@1276378488' Nur als Nachtrag, -dnh -- Frauen sind wie Übersetzungen: die schönen sind nicht treu, und die treuen sind nicht schön. -- George Bernard Shaw -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Tue 15 Jun 2010 03:44:33 NZST +1200, David Haller wrote:
date --date "@1276378488" "+%Y-%m-%d %T"
Geht halt nur mit neueren GNU date, die awk-Version braucht GNU awk, die perl-Version ist portabel.
Das mit @ geht aber schon seit vielen Jahren so, da mußt Du eine sehr alte Version haben. Und bevor @ konnte GNU date das auch, aber mit anderer Syntax. Über perl hat das den Vorteil, daß man für einen einzigen Funktionsaufruf nicht das ganze perl-Betriebssystem anwerfen muß. Volker -- Volker Kuhlmann http://volker.dnsalias.net/ Please do not CC list postings to me. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Ekkard, Am 13.06.2010 um 23:48 schrieb Ekkard Gerlach:
Hallo,
so bekomme ich aus einem Unix timestamp die "leserliche" UTC-Zeit:
date --utc --date "1970-01-01 1276378488 sec" "+%Y-%m-%d %T"
Wie die Uhrzeit ist bei Sommerzeit hier in Deutschland aber zwei Stunden hintendran. Wie korrigiere ich das? - Es sollte dann im Winter auch korrekt sein, also nicht einfach 2 Std addieren.
Gruss Ekkard
Diese Webseite half mir gelegentlich beim Konvertieren von und zu Epoch-Werten: http://www.epochconverter.com/ Das praktische ist, dass sich dort Code-Beispiele fuer diverse Programmiersprachen finden, ob Shell oder Python. Und es sind alles Einzeiler (ausser bei Perl ;-) Die Seite ist, wenn man sie einmal kennt, per Suchmaschine leicht wieder zu finden. Peter-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (5)
-
David Haller
-
Ekkard Gerlach
-
Martin Schröder
-
Peter Pöml
-
Volker Kuhlmann