bash: Ist gerade Sommer- oder Winterzeit?
Wie frage ich mit der bash ab, ob gerade Sommer- oder Winterzeit ist? Al -- 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
Hi Al, Am Freitag, 24. September 2010 17:18:27 wrote Al Bogner:
Wie frage ich mit der bash ab, ob gerade Sommer- oder Winterzeit ist? Gib in der bash mal date ein. Wenn hinter der Uhrzeit CEST steht ist Sommerzeit. Bei CET Winterzeit IIRC.
Viel Spaß Sascha -- Sincerely yours Sascha Manns open-slx GmbH openSUSE Community & Support Agent openSUSE Marketing Team Blog: http://saigkill.wordpress.com Web: http://www.saschamanns.de Web: http://www.open-slx.de (openSUSE Box Support German) Web: http://www.open-slx.com (openSUSE Box Support English) Open-SLX : Linux convenient, simple, secure and complete
Am Freitag, den 24.09.2010, 17:18 +0200 schrieb Al Bogner:
Wie frage ich mit der bash ab, ob gerade Sommer- oder Winterzeit ist?
Auf Winterzeit wird erst am letzten Wochenende im Oktober umgestellt. Bye Michael -- Beware of a tall blond man with one black shoe. _________________________________________________________________________ Registered VDR User #1525 Loadavg.: 0.66 1.03 1.18 http://dattuxi.de/ Registered Linux User #228306 Linux 2.6.32-25-generic ICQ #151172379 -- 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 Freitag, 24. September 2010 17:18:27 schrieb Al Bogner: Hallo Al,
Wie frage ich mit der bash ab, ob gerade Sommer- oder Winterzeit ist?
date +%Z MfG Th. Moritz -- 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 Fr, 24 Sep 2010 18:14:23 CEST schrieb Thomas Moritz:
Am Freitag, 24. September 2010 17:18:27 schrieb Al Bogner:
Hallo Thomas,
Wie frage ich mit der bash ab, ob gerade Sommer- oder Winterzeit ist?
date +%Z
Meine Frage ist simpel, das was dahinter steht ist kompliziert. Neuere Nokla-Handys eignen sich mit Sportstracker zum Geotagging der Fotos (einer externen Kamera). Leider schreibt Sportstracker die gox-Datei nicht mitUTC, sondern als lokale Zeit des Handys. Nun frage ich mich, wie man die Änderng auf UTC automatisieren könnte. Die "manuelle" Lösung ist: gpsbabel -t -i gpx -f "$1" -x track,move=-2h -o gpx -F out.gpx \ -o kml,units=m -F out.kml # 2. Zeile f. GoogleEarth Unter der Annahme, dass man Daten in der eigenen Zeitzone aufgezeichnet hat, müsste man automatisieren können, ob nun -1 oder -2 (bei Sommerzeit) verwendet werden soll. So fängt zB die GPX-Datei an <?xml version="1.0" encoding="ISO-8859-1"?> <gpx xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="Sports Tracker" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"> <metadata> <name>26.08.2010 18:02</name> <desc>Other 1</desc> <author><name>Joe Average</name></author> <time>2010-08-26T18:02:49.06</time> </metadata> <trk> <name>26.08.2010 18:02</name> <trkseg> <trkpt lat="47.918368" lon="13.161253"> <ele>571.5</ele> <speed>0.07</speed> Daraus müsste man definieren können, wie groß der Offset ist. Problematisch wird es aber, wenn die GPX-Daei einen Wechsel von Sommer- auf Winterzeit oder umgekehrt enthält. Al -- 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 Freitag, 24. September 2010 19:52:46 schrieb Al Bogner: Hallo Al,
Meine Frage ist simpel, das was dahinter steht ist kompliziert.
Neuere Nokla-Handys eignen sich mit Sportstracker zum Geotagging der Fotos (einer externen Kamera). Leider schreibt Sportstracker die gox-Datei nicht mitUTC, sondern als lokale Zeit des Handys.
Nun frage ich mich, wie man die Änderng auf UTC automatisieren könnte.
Mit den Angaben unten garnicht! Mein/Dein Datalogger z.B. zeichnet generell _alles_ per GMT auf. Das macht auch Sinn, denn es ist egal, wo Du gerade scannst! Moskau, Canada, usw. Die spaetere Auswertung bleibt Dir, dem User ueberlassen! GMT kommt vom Stern da oben und der Rest ist Deine Sache!
Die "manuelle" Lösung ist: gpsbabel -t -i gpx -f "$1" -x track,move=-2h -o gpx -F out.gpx \ -o kml,units=m -F out.kml # 2. Zeile f. GoogleEarth
Dazu musst _Du_ aber wissen, _wann_ _Du_ gescannt hast! Automatisch gibt es imho nur die Datumsberechnung!
Daraus müsste man definieren können, wie groß der Offset ist. Problematisch wird es aber, wenn die GPX-Daei einen Wechsel von Sommer- auf Winterzeit oder umgekehrt enthält.
Das kannst Du _nur_ per Datum definieren. Letzter Sonntag im Maerz Sommerzeit Letzter Sonntag im Oktober Winterzeit Das Berechnen sollte kein Problem darstellen. Falls doch, dann schau ich nach :-) MfG Th. Moritz -- 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 Fr, 24 Sep 2010 20:15:43 CEST schrieb Thomas Moritz:
Am Freitag, 24. September 2010 19:52:46 schrieb Al Bogner:
Hallo Thomas,
Meine Frage ist simpel, das was dahinter steht ist kompliziert.
Neuere Nokla-Handys eignen sich mit Sportstracker zum Geotagging der Fotos (einer externen Kamera). Leider schreibt Sportstracker die gox-Datei nicht mitUTC, sondern als lokale Zeit des Handys.
Nun frage ich mich, wie man die Änderng auf UTC automatisieren könnte.
Mit den Angaben unten garnicht! Mein/Dein Datalogger z.B. zeichnet generell _alles_ per GMT auf.
Eben nicht, genau das ist das Problem. Im GPX-File, das der Sportstracker erstellt, habe ich eine Zeitdifferenz von 2h. Der Sportstracker hält sich nicht an die GPX-Spezifikation und ich will es mir möglichst einfach machen, das zu ändern.
Das macht auch Sinn, denn es ist egal, wo Du gerade scannst! Moskau, Canada, usw. Die spaetere Auswertung bleibt Dir, dem User ueberlassen! GMT kommt vom Stern da oben und der Rest ist Deine Sache!
Die "manuelle" Lösung ist: gpsbabel -t -i gpx -f "$1" -x track,move=-2h -o gpx -F out.gpx \ -o kml,units=m -F out.kml # 2. Zeile f. GoogleEarth
Dazu musst _Du_ aber wissen, _wann_ _Du_ gescannt hast! Automatisch gibt es imho nur die Datumsberechnung!
Das Datum steht ja im GPX-FIle, also sollte man daraus den Offset berechnen können. cat W20100826180249.gpx | grep time | head -n 1| cut -c7-16 2010-08-26 bzw. cat W20100826180249.gpx | grep time | head -n 1| cut -c7-25 2010-08-26T18:02:49 Jetzt bin ich nur noch am überlegen, wie ich das am besten an date verfüttere, sodass dann CET oder CEST angezeigt wird, oder ist das nicht möglich? Al -- 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 Freitag, 24. September 2010 20:49:25 schrieb Al Bogner: Hallo Al,
Das Datum steht ja im GPX-FIle, also sollte man daraus den Offset berechnen können.
cat W20100826180249.gpx | grep time | head -n 1| cut -c7-16 2010-08-26
bzw.
cat W20100826180249.gpx | grep time | head -n 1| cut -c7-25 2010-08-26T18:02:49
Jetzt bin ich nur noch am überlegen, wie ich das am besten an date verfüttere, sodass dann CET oder CEST angezeigt wird, oder ist das nicht möglich?
Was willst Du genau _anders_ an date verfuettern? 1) W20100826180249 26.08.2010 18:02:49 2) W20100826180249 26.08.2010 18:02:49 hmmm???? Siehe Mail zuvor! Du kannst CEST und CET anhand des Datums berechnen und anzeigen lassen! Kripplig koennte die Berechnung zwischen 2-3Uhr werden. Darum musste ich mich bisher jedoch noch nicht kuemmern. MfG Th. Moritz -- 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 Fr, 24 Sep 2010 21:13:38 CEST schrieb Thomas Moritz:
Am Freitag, 24. September 2010 20:49:25 schrieb Al Bogner:
Hallo Thomas,
Das Datum steht ja im GPX-FIle, also sollte man daraus den Offset berechnen können.
cat W20100826180249.gpx | grep time | head -n 1| cut -c7-16 2010-08-26
bzw.
cat W20100826180249.gpx | grep time | head -n 1| cut -c7-25 2010-08-26T18:02:49
Jetzt bin ich nur noch am überlegen, wie ich das am besten an date verfüttere, sodass dann CET oder CEST angezeigt wird, oder ist das nicht möglich?
Was willst Du genau _anders_ an date verfuettern?
1) W20100826180249 26.08.2010 18:02:49 2) W20100826180249 26.08.2010 18:02:49
hmmm????
Ich verstehe dein hmmm jetzt, das funktionierte vorher nicht: cat W20100826180249.gpx | grep time | head -n 1| cut -c7-25 | date +%Z CEST Da war wohl irgendwo ein kleiner Unterschied. Danke Al -- 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 Freitag, 24. September 2010 21:42:47 schrieb Al Bogner: Hallo Al,
Was willst Du genau _anders_ an date verfuettern?
1) W20100826180249 26.08.2010 18:02:49 2) W20100826180249 26.08.2010 18:02:49
hmmm????
Ich verstehe dein hmmm jetzt, das funktionierte vorher nicht:
cat W20100826180249.gpx | grep time | head -n 1| cut -c7-25 | date +%Z CEST
Da war wohl irgendwo ein kleiner Unterschied.
Und warum verballerst Du cat, grep, head, cut...? Im Filename stehen doch alle Angaben! MfG Th. Moritz -- 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 Fr, 24 Sep 2010 22:04:49 CEST schrieb Thomas Moritz:
Am Freitag, 24. September 2010 21:42:47 schrieb Al Bogner:
Hallo Thomas,
Was willst Du genau _anders_ an date verfuettern?
1) W20100826180249 26.08.2010 18:02:49 2) W20100826180249 26.08.2010 18:02:49
hmmm????
Ich verstehe dein hmmm jetzt, das funktionierte vorher nicht:
cat W20100826180249.gpx | grep time | head -n 1| cut -c7-25 | date +%Z CEST
Da war wohl irgendwo ein kleiner Unterschied.
Und warum verballerst Du cat, grep, head, cut...? Im Filename stehen doch alle Angaben!
Darauf kann ich mich nicht verlassen. Ich habe das Handy für Geotagging erst 2 mal verwendet und wenn mich das Programm lässt, dann schreibe ich als Dateiname eine Bezeichnung rein. Allerdings ist es noch immer mysteriös, ob ich es wegen der versuchten Internetverbindungen, die ich abbreche, auch schaffe. Das Programm nervt ziemlich mit den Versuchen sich ins Internet zu verbinden. Vielleicht ist das für Sportler sinnvoll, für meinen Zweck aber total unnötig. Al -- 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
Hi Al, Am Freitag, 24. September 2010, 17:18:27 schrieb Al Bogner:
Wie frage ich mit der bash ab, ob gerade Sommer- oder Winterzeit ist?
Al
date +%Z oder date +%c oder date +%:z oder date +%z usw. und den Vergleich dazu überlegst du dir bitte selbst. ps: date --help gibt es auch Gruss Fallk -- 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 Fri, 24 Sep 2010 17:18:27 +0200 schrieb Al Bogner
Wie frage ich mit der bash ab, ob gerade Sommer- oder Winterzeit ist?
Solange Dein Script nur in einer Zeitzone arbeitet, reicht eine Abfrage von date +%Z . Wenn das allerdings global funktionieren soll, müsstest Du "isdst" abfragen und da kenne ich keine Möglichkeit. Ein etwas umständlicher, aber prinzipiell funktionsfähiger Ansatz könnte sein, das aktuelle Jahr (date +%Y) und die Zeitzone (date +%Z) zu verwenden, um /etc/localtime zu greppen und dort isdst abzufragen, also in etwa so: zdump -v /etc/localtime |grep "$(date +%Y)\ $(date +%Z)" Wobei eigentlich nur das "isdst=1" bzw. "isdst=0" an Ende interessant ist, also zdump -v /etc/localtime |grep "$(date +%Y)\ $(date +%Z)" |cut -f16 -d" " |head -1 Wahrscheinlich gibt's auch ne Möglichkeit, "isdst" direkt im System abzufragen, aber zumindest "date" scheint sie nicht zu bieten. -- Gruß, Tobias. -- 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 Fr, 24 Sep 2010 18:44:40 CEST schrieb Tobias Crefeld:
Am Fri, 24 Sep 2010 17:18:27 +0200 schrieb Al Bogner
: Wie frage ich mit der bash ab, ob gerade Sommer- oder Winterzeit ist?
Solange Dein Script nur in einer Zeitzone arbeitet, reicht eine Abfrage von date +%Z .
Zur Problematik und zum Inhalt des Scripts siehe nebenan. Ich denke aber, dass es mir reicht, wenn es nur auf die Zeitzone Rücksicht nimmt, die Deutschland betrifft. Das wird die Regel sein und andere Zeitzonen müssen, dann eben händisch definiert werden. gpsphoto ( http://sourceforge.net/projects/gps2photo/ ) kennt da schon einen Automatismus, da auch die Koordinaten ausgewertet werden, der hilft mir aber nicht, da die ursprüngliche Zeit nicht normgerecht ist: guess --tz-guess=zone.tab Aus Kompitabilitätsgründen muss / will ich aber die gpx-Datei korrigieren, die die lokale Zeit des Handys verwendet. Al -- 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 Fre, 24 Sep 2010, Al Bogner schrieb:
Wie frage ich mit der bash ab, ob gerade Sommer- oder Winterzeit ist?
(ich hab gleich noch in den anderen Mails nachgeschaut) ==== gpxfile=foo.gpx ### besser als Argument is_dst() { if -n "$1"; then return $(date -d "$1" '+0%0z/100-1'|bc); else return $(date '+0%0z/100-1'|bc); fi } date=$(awk -F'time' ' /<time>/ { gsub("[<>/]","",$2); print $2; exit 0; }' "$gpxfile" ) if is_dst; then : ... ; fi if is_dst "$date"; then : ...; fi ==== Viel Spaß beim verstehen ;) Achso, klappt so nur mit UTC+1 (Winterzeit), ansonsten muß man sich was überlegen. Im Zweifel sollte man dann perl zurückgreifen, da hat man u.a. Zugriff auf isdst. $ perl -e 'print [localtime()]->[8], "\n";' 1 ### localtime hat 'now' als default, Feld 8 in der ist das ### mit der "isdst"-Angabe. $ perl -MPOSIX -e print [localtime(mktime(0,0,0,13,12,2010))]->[8], "\n"; 0 Siehe 'man perlfunc' für localtime und 'man POSIX' für 'mktime'. Wieder mal ein Beispiel, wie "so Krams" in perl sehr einfach sein kann ... *scnr* -dnh -- I feel like I'm diagonally parked in a parallel universe. -- 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 Fr, 24 Sep 2010 22:06:16 CEST schrieb David Haller: Hallo David,
Am Fre, 24 Sep 2010, Al Bogner schrieb:
Wie frage ich mit der bash ab, ob gerade Sommer- oder Winterzeit ist?
(ich hab gleich noch in den anderen Mails nachgeschaut)
==== gpxfile=foo.gpx ### besser als Argument
is_dst() { if -n "$1"; then return $(date -d "$1" '+0%0z/100-1'|bc); else return $(date '+0%0z/100-1'|bc); fi }
date=$(awk -F'time' ' /<time>/ { gsub("[<>/]","",$2); print $2; exit 0; }' "$gpxfile" )
if is_dst; then : ... ; fi
if is_dst "$date"; then : ...; fi
====
Viel Spaß beim verstehen ;)
Ein schönes Übungsbeispiel, danke. Ich habe es so gelöst: TIMEZONE=`cat "$1" | grep time | head -n 1| cut -c7-25 | date +%Z` if [ "$TIMEZONE" = "CEST" ] ; then UTCOFFSET=-2h elif [ "$TIMEZONE" = "CET" ] ; then UTCOFFSET=-1h fi gpsbabel -t -i gpx -f "$1" -x track,move=$UTCOFFSET -o gpx -F out.gpx \ -o kml,units=m -F out.kml
Achso, klappt so nur mit UTC+1 (Winterzeit), ansonsten muß man sich was überlegen. Im Zweifel sollte man dann perl zurückgreifen, da hat man u.a. Zugriff auf isdst.
$ perl -e 'print [localtime()]->[8], "\n";' 1 ### localtime hat 'now' als default, Feld 8 in der ist das ### mit der "isdst"-Angabe. $ perl -MPOSIX -e print [localtime(mktime(0,0,0,13,12,2010))]->[8], "\n"; 0
Siehe 'man perlfunc' für localtime und 'man POSIX' für 'mktime'. Wieder mal ein Beispiel, wie "so Krams" in perl sehr einfach sein kann ... *scnr*
Grins, wie schon nebenan geschrieben, da gibt es für Perl was, dass die Zeit mit den Koordinaten abgleicht, ist aber wohl overkill. Ich verlasse meine Zeitzone selten. PS: Zu der Mailgeschichte bin ich noch nicht weiter, ist zu viel los. Hast du das PW erhalten? (Antwort per PM) Al -- 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 Fre, 24 Sep 2010, Al Bogner schrieb:
Am Fr, 24 Sep 2010 22:06:16 CEST schrieb David Haller:
Am Fre, 24 Sep 2010, Al Bogner schrieb:
Wie frage ich mit der bash ab, ob gerade Sommer- oder Winterzeit ist? [..] Ich habe es so gelöst:
TIMEZONE=`cat "$1" | grep time | head -n 1| cut -c7-25 | date +%Z`
XML kannst du nicht mit 'cut' bearbeiten.
if [ "$TIMEZONE" = "CEST" ] ; then UTCOFFSET=-2h elif [ "$TIMEZONE" = "CET" ] ; then UTCOFFSET=-1h fi
Nimm folgendes: ==== gpxfile="$1" date=$(awk -F'time' ' /<time>/ { gsub("[<>/]","",$2); print $2; exit 0; }' "$gpxfile") utcoffset=$(date -d "$date" '+0%z/100' | bc \ | sed 's/^\([0-9]\)/+\1/;y/+-/-+/;s/$/h/;' ) # weiter mit gpsbabel ==== Das würde soweit auch in anderen Zeitzonen funktionieren (setz mal TZ=EST ;) [..]
Siehe 'man perlfunc' für localtime und 'man POSIX' für 'mktime'. Wieder mal ein Beispiel, wie "so Krams" in perl sehr einfach sein kann ... *scnr*
Grins, wie schon nebenan geschrieben, da gibt es für Perl was, dass die Zeit mit den Koordinaten abgleicht, ist aber wohl overkill. Ich verlasse meine Zeitzone selten.
;)
PS: Zu der Mailgeschichte bin ich noch nicht weiter, ist zu viel los. Hast du das PW erhalten? (Antwort per PM)
Bin auch noch nicht zum testen gekommen. -dnh -- Flhacs wird im Usenet grundsätzlich alsfhc geschrieben. Schreibt man lafhsc nicht slfach, so ist das schlichtweg hclafs. (Hajo Pflueger in de.newuser.questions) -- 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 Sa, 25 Sep 2010 00:40:20 CEST schrieb David Haller: Hallo David,
Am Fre, 24 Sep 2010, Al Bogner schrieb:
Am Fr, 24 Sep 2010 22:06:16 CEST schrieb David Haller:
Am Fre, 24 Sep 2010, Al Bogner schrieb:
Wie frage ich mit der bash ab, ob gerade Sommer- oder Winterzeit ist? [..] Ich habe es so gelöst:
TIMEZONE=`cat "$1" | grep time | head -n 1| cut -c7-25 | date +%Z`
XML kannst du nicht mit 'cut' bearbeiten.
Ich will nicht XML _bearbeiten_. Die Bearbeitung erfolgt durch gspbabel mit "move". Ich will nur wissen, ob die GPX-Datei der Sommer- oder Winterzeit zugeordnet werden muss, wobei ich annehme, dass die GPX-Datei nicht Daten aus beiden Zeiten enthält. Es geht also nur um Offset -1 oder -2. Das ist auch mit dem Handy schwer vorstellbar, dass die GPX-Datei über mehrere Tage geht, da bei Stop abgespeichert wird. Bei meinem GPS können die Daten mehrere Tage betreffen, aber darum geht es ja hier nicht. Für andere Zeitzonen könnte man ein $2 machen, wo man den Offset direkt angeben kann, das lasse ich aber auf mich zukommen. Bei Reisen nehme ich mein GPS mit, das müsste zufällig defekt werden, o.ä., sodass ich das Handy verwende.
if [ "$TIMEZONE" = "CEST" ] ; then UTCOFFSET=-2h elif [ "$TIMEZONE" = "CET" ] ; then UTCOFFSET=-1h fi
Nimm folgendes:
====
gpxfile="$1"
date=$(awk -F'time' ' /<time>/ { gsub("[<>/]","",$2); print $2; exit 0; }' "$gpxfile")
echo "$date" 2010-08-26T18:02:49.06 cat "$gpxfile" | grep time | head -n 1| cut -c7-25 2010-08-26T18:02:49 Warum sollte da ein Unterschied sein? Genau genommen reicht mir irgendein Datum der vorhandenen Zeitangaben.
utcoffset=$(date -d "$date" '+0%z/100' | bc \ | sed 's/^\([0-9]\)/+\1/;y/+-/-+/;s/$/h/;' )
echo "$utcoffset" -2h Was ist da der Vorteil, gegenüber meiner Variante der Zuordnung von CEST und CET? Nehmen wir mal an ich würde bei einer Reise eine Zeitzone überschreiten, dann würde es sowieso kompliziert und in diesem Fall würde ich zu 99% das Handy als GPS gar nicht verwenden, sondern mein WBT 201 und das zeichnet in UTC auf. Zur Zeit argwöhne ich, dass Sportstracker die Zeit des Handys verwendet und nicht die Zeit des GPS-Signals. Ich habe da einige deutliche Abweichungen festgestellt. Al -- 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 Sam, 25 Sep 2010, Al Bogner schrieb:
echo "$date" 2010-08-26T18:02:49.06
cat "$gpxfile" | grep time | head -n 1| cut -c7-25 2010-08-26T18:02:49
Warum sollte da ein Unterschied sein?
Du kannst dich schlicht nicht darauf verlassen, daß das '>' von '<time>' immer das Zeichen 6 ist. Wenn's dir lieber ist, kannst du auch sed verwenden (ungetestet): sed -n '/<time>/s|<time>\([^<]*\)</time>|\1|p' "$gpxfile" HTH, -dnh -- "`Ford, you're turning into a penguin. Stop it.'" -THHGTTG -- 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 (7)
-
Al Bogner
-
David Haller
-
Falk Sauer
-
Michael Raab
-
Sascha 'saigkill' Manns
-
Thomas Moritz
-
Tobias Crefeld