Forum: Mikrocontroller und Digitale Elektronik UTC zeit auf lokal Zeit


von ichich (Gast)


Lesenswert?

Hallo,
ich möchte aus den NMEA Datensatz RMC die Zeit und das Datum verwenden.

Wie kann ich nun von UTC auf Localzeit kommen.
Geht das irgend wie über die GPS Position?

Danke für Tipps

von Niels H. (monarch35)


Lesenswert?

Natürlich. Du könntest über die GPS-Position Rückschlüsse über die 
Zeitzone, in der du dich befindest, machen lassen. Das wird aber 
vermutlich ziemlich aufwendig.

Ich würde das aber einfacher handhaben: entweder konfigurierbar im Code 
oder über ein Benutzerinterface. Für eine Umrechnung nach CET einfach +1 
Stunde; bei Sommerzeit halt +2 Stunden.

von Oliver (Gast)


Lesenswert?

Klar - du musst nur die aktuelle Position mit den Verläufen der 
Zeitzonengrenzen vergleichen, schon weisst du, in welcher Zeitzone du 
dich befindest. Wenn das "full-featured" werden soll, also an jeder 
Position der Welt fehlerlos funktionieren soll, musst du dir halt die 
genauen Koordinaten der Zeitzonengrenzen besorgen - dazu alle regionalen 
Sommerzeitdaten. usw.

Da das aber aber (ausserhalb der internationalen Luftfahrt) kein Mensch 
braucht, reicht normalerweise die manuelle Eingabe der Zeitzone.

Oliver

von ichich (Gast)


Lesenswert?

Hallo,
danke für die Antworten.
Ich werds dann doch über ein Benutzerinterface machen.

Was ist denn genau Umrechnung nach CET.

Zeit umrechnen ist ja kein Problem, da die Überläufe immer gleich sind.
Wie ist denn das genau mit dem Datum 30,31, Schaltjahr.
mfg

von Oliver (Gast)


Lesenswert?

>Was ist denn genau Umrechnung nach CET.

???

CET
Central European Time
deutsch: MEZ

= UTC + 1 std.

Das alles, und noch viel mehr, steht in wikipedia unter...

Zeitzone

Oliver

von Niels H. (monarch35)


Lesenswert?

ichich wrote:

> Was ist denn genau Umrechnung nach CET.

CET bedeutet Central European Time; zu deutsch MEZ = Mitteleuropäische 
Zeit.
Hatte ich auch schon schon beschrieben, wie das geht. Einfach +1 Stunde 
, Im Sommer +2 Stunden.

> Wie ist denn das genau mit dem Datum 30,31, Schaltjahr.

Am Datum ändert sich nichts....Du musst den Datumswechsel nur halt für 
eine Stunde (bzw zwei Stunden) im vorraus berechnen.

von ichich (Gast)


Lesenswert?

Sorry,
ich steh ich irgendwie auf der Leitung.

Wenn ich den Datumswechsel am 30 Monatstag im voraus berechne,
muss ich wissen ob es einen 31 Monatstag gibt.
Wie löst man dies?

von Oliver (Gast)


Lesenswert?

?????
Irgendwie stehe ich auch auf der Leitung. Wenn doch dein NMEA-Datensatz 
Datum und Zeit enthält, was willst du noch berechnen?

Aber ansonsten versuchs mal mit:

switch(Monat)
{
   case Jan:
        Mar:
        Mai:
        Jul:
        Aug:
        Oct:
        Dez: return 31; break;

   case Feb: return SchaltjahrTage(Jahr); break

   default: return 30; break;
}

von ichich (Gast)


Lesenswert?

?????
Irgendwie stehe ich auch auf der Leitung. Wenn doch dein NMEA-Datensatz
Datum und Zeit enthält, was willst du noch berechnen?

Frage: NMEA Daten zB. UTC  23 30 50.000 Datum 28 02 08

Jetzt + 1h =  UTC 00 30 50.000 Datum 29 02 08 oder 01 03 08?

Sonst ist innerhalb des Zeitvesatzes das Datum einfach falsch oder?

von Michael Wilhelm (Gast)


Lesenswert?

Wenn dein Jahr Modulo 4 Null ergibt, ist es ein Schaltjahr.

MW

von Niels H. (monarch35)


Lesenswert?

ichich wrote:

> Frage: NMEA Daten zB. UTC  23 30 50.000 Datum 28 02 08
>
> Jetzt + 1h =  UTC 00 30 50.000 Datum 29 02 08 oder 01 03 08?

Fragst du gerade ernsthaft, ob 2008 ein Schaltjahr ist?!

von Niels H. (monarch35)


Lesenswert?

Michael Wilhelm wrote:

> Wenn dein Jahr Modulo 4 Null ergibt, ist es ein Schaltjahr.

Nicht ganz korrekt. Alle 200Jahre gibts ein extra Schaltjahr :)

ed: alle 400Jahre...sorry

von Michael Wilhelm (Gast)


Lesenswert?

Hab eben noch mal nachgesehen:
Alle Jahre, die durch 4 ohne Rest teilbar sind, sind Schaltjahre.
Alle Jahre, die durch 100 ohne Rest teilbar sind, sind keine 
Schaltjahre.
Alle Jahre, die durch 400 ohne Rest teilbar sind, sind wiederum 
Schaltjahre.


MW

von Michael Wilhelm (Gast)


Lesenswert?

Aber:

da das Jahr nur zweistellig ausgegeben wird sind diese Korrekturen nicht 
anwendbar.

MW

von Oliver (Gast)


Lesenswert?

>da das Jahr nur zweistellig ausgegeben wird sind diese Korrekturen nicht
>anwendbar.

ROTFL

> Jetzt + 1h =  UTC 00 30 50.000 Datum 29 02 08 oder 01 03 08?
>Sonst ist innerhalb des Zeitvesatzes das Datum einfach falsch oder?

Jung, kauf dir doch einfach 'nen Funkwecker. Gibts für 5,99 bei Aldi. Da 
steht das richtige Datum immer drauf. Alles andere ist anscheinend um 
Größenordnungen zu kompliziert für dich.

Oliver

von ichich (Gast)


Lesenswert?

Danke an euch,
jetzt sind alle meine Fragen geklärt.

Besonders nützlich war der letzte Kommentar von Oliver.

Oliver Du bist der Beste.

von Arno H. (arno_h)


Lesenswert?

@ Michael Wilhelm (Gast)
1. fällts auf, wenn die UTC umspringt und die Ortszeit berechnet oder 
synchronisiert werden muss.
2. ist es seinen Erben durchaus zuzumuten im Jahr 2100 die Uhr manuell 
umzustellen. Es gibt Armbanduhren (IWC irgendwas) mit Spezialschlüssel 
für diese Sonderfälle.

Arno

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.