Hallo, ich habe hier ein kleines Problem bei dem ich eure Hilfe brauche. Es geht darum, die aktuelle Uhrzeit mit C#/.NET herauszubekommen. Eigentlich ist das ja ganz einfach: DateTime.Now. Nun verwende ich aber das .NET Micro Framework (.NETMF), auf einem Microcontroller-Board. Da gibt es natürlich keine zuverlässige Uhr. Also frage ich die Zeit von einem Zeitserver im Internet ab. Das funktioniert auch in soweit, als dass ich eine korrekte UTC Zeit bekomme. Doch wie komme ich nun an die lokale, deutsche Zeit? Einfach eine Zeitzonen-Konstante draufrechnen reicht ja nicht, weil ja auch die Sommer- und Winterzeit mit einbezogen werden müssen. Wie mach ich das am besten?
:
Verschoben durch User
Ich kenne mich mit dem .NET Micro Framework nicht aus, aber gibt es darin nicht auch DateTime.ToLocalTime? "The local time is equal to the Coordinated Universal Time (UTC) time plus the UTC offset. For more information about the UTC offset, see the GetUtcOffset method. The conversion also takes into account the daylight saving time rule that applies to the current value of the current DateTime object." http://msdn.microsoft.com/en-us/library/hh401602.aspx "Available in the .NET Micro Framework versions 2.0, 2.5, 3.0, 4.0, 4.1, and 4.2."
Boris P. schrieb: > Doch wie komme ich nun an die lokale, deutsche Zeit? Einfach eine > Zeitzonen-Konstante draufrechnen reicht ja nicht, weil ja auch die > Sommer- und Winterzeit mit einbezogen werden müssen. Dafür danke deiner Regierung und der goldenen Kuh "einheitliche Sommerzeitregelung für die EU". In der Richtlinie 2000/84/EG zur Regelung der Sommerzeit[62] und den ergänzenden Mitteilungen 2001/C 35/07[63] und 2006/C 61/02 stehen diese mehr oder weniger willkürlichen Festlegungen. Entweder du holst dir die Umschalttermine aus dem I-Net oder packst eine Tabelle in deinen Code, die bei einer Änderung der Verordnung ggf. aktualisiert werden muss.
afterfüßiger zweyfuß schrieb: > Ich kenne mich mit dem .NET Micro Framework nicht aus, aber gibt es > darin nicht auch DateTime.ToLocalTime? Jo, da hst du Recht. Allerdings funktioniert das beim Compact Framework nicht, da man Thread.CurrentThread.CurrentCulture nicht setzen kann (gibt es da nicht). Leider kenne ich keine andere Möglichkeit die aktuelle Culture zu setzen...
Gibt es vielleicht eine Webseite, die direkt die aktuelle deutsche Uhrzeit zum Abgriff bereit hält? Muss ja nicht per NTP sein, kann ja z.B. auch als einfache Webseite aufbereitet sein. Die könnte ich ja dann aufrufen, auslesen und parsen...
Im Prinzip schon. Für das Parsen auf dem µC aber vielleicht etwas zu viel. Etwas Minimalistischeres wäre schön ;-)
Ist Google schon wieder offline? Hinweis: "Uhrzeit Deutschland" bringt bei mir 4.030.000 Ergebnisse in 0,22 Sekunden.
Michael Bauer schrieb: > Ist Google schon wieder offline? > Hinweis: "Uhrzeit Deutschland" bringt bei mir 4.030.000 Ergebnisse in > 0,22 Sekunden. Das ist doch mal 'ne gute Quote. Gibt's da einen Wettbewerb? ;-) Klar sind viele richtige Treffer dabei, aber man sollte nicht mit einer Zahl von 4Mio hantieren, denn viele davon haben nur eines der Suchworte getroffen. Wobei die Hälfte davon auf "Uhrzeit" entfällt und die andere Hälfte auf "Deutschland". Beispielsweise "Lottozahlen Deutschland" oder "NBA Deutschland" oder "Uhrzeit Türkei".
Boris P. schrieb: > Im Prinzip schon. Für das Parsen auf dem µC aber vielleicht etwas > zu viel. > Etwas Minimalistischeres wäre schön ;-) http://www.earthtools.org/timezone/53.5/12.5
Schau mal nach NodaTime, allerdings keine Ahnung ob das auch beim Micro Framework läuft.
a) es gibt keine "Winterzeit", sondern nur die Sommerzeit und die normale MEZ b) hast du Zugriff auf einen Webeserver? Mit drei Zeilen PHP kannst du dir per Socket die Uhrzeit abholen, ohne jeden HTTP- und HTML-Overhead
Michael Bauer schrieb: > Ist Google schon wieder offline? > Hinweis: "Uhrzeit Deutschland" bringt bei mir 4.030.000 Ergebnisse in > 0,22 Sekunden. Sehr hilfreich, danke! Welche dieser 4.030.000 Webseiten bietet denn die aktuelle Uhrzeit ohne Overhead, d.h. ohne viel Webseite drum herum? afterfüßiger zweyfuß schrieb: > http://www.earthtools.org/timezone/53.5/12.5 Das sieht gut aus, sowas hatte ich mir vorgestellt. Danke! Frank schrieb: > b) hast du Zugriff auf einen Webeserver? Mit drei Zeilen PHP kannst du > dir per Socket die Uhrzeit abholen, ohne jeden HTTP- und HTML-Overhead Hättest du ein Beispiel (wenn es nur 3 Zeilen sind)? Das würde mich auch mal interessieren...
z.B. DCF77-Signal prüfen auf 200ms/100ms http://www.dcf77.de/kodierschema-des-dcf77-signals.html Aber Vorsicht, weil schlechter DCF-Empfang das Impulsdiagramm verfälschen kann, ist mehrfache Prüfung sinnvoll.
Boris P. schrieb: > Frank schrieb: >> b) hast du Zugriff auf einen Webeserver? Mit drei Zeilen PHP kannst du >> dir per Socket die Uhrzeit abholen, ohne jeden HTTP- und HTML-Overhead > > Hättest du ein Beispiel (wenn es nur 3 Zeilen sind)? > Das würde mich auch mal interessieren...
1 | <?php
|
2 | echo date('I h:i:s ') |
3 | ?>
|
Das "I" zeigt dir übrigens an, ob MEZ oder MESZ.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.