mikrocontroller.net

Forum: PC-Programmierung NTP und kernel


Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Gibt es eine Möglichkeit im kernel die aktuelle Zeit im NTP Format zu 
erhalten! ich kenne nur den Befehl KeQuerySystemTime der die Zeit 
allerdings in einen anderen Format ausgibt! Oder kann man da dann 
einfach so umrechnen!?

MFG Gast

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gast wrote:
> Hallo
>
> Gibt es eine Möglichkeit im kernel die aktuelle Zeit im NTP Format zu
> erhalten! ich kenne nur den Befehl KeQuerySystemTime der die Zeit
> allerdings in einen anderen Format ausgibt! Oder kann man da dann
> einfach so umrechnen!?
>
> MFG Gast

NTP Format? Einfach nur Sekunden seit dem 1.1.1970 ("UNIX Zeit") 
http://en.wikipedia.org/wiki/Unix_time

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Simon K. wrote:
> Gast wrote:
>> Hallo
>>
>> Gibt es eine Möglichkeit im kernel die aktuelle Zeit im NTP Format zu
>> erhalten! ich kenne nur den Befehl KeQuerySystemTime der die Zeit
>> allerdings in einen anderen Format ausgibt! Oder kann man da dann
>> einfach so umrechnen!?
>>
>> MFG Gast
>
> NTP Format? Einfach nur Sekunden seit dem 1.1.1970 ("UNIX Zeit")
> http://en.wikipedia.org/wiki/Unix_time

Eher nicht...
NTP sind 64-Bit: 32-Bit "Vorkomma" Sekunden seit 1900-01-01, 
32-Bit-Nachkomma Sekundenbruchteile (1/2^32 Sekunden)

Kernelzeit sind 100ns seit dem 1601-01-01.
Lässt sich also umrechnen.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Danke füe die Antworten! Habe das umrechnen jetzt implementiert und es 
funktioniert auch so weit recht gut jedoch vertut er sich noch um ca 
3Tage und 4 stunden! Kennt jemand von euch den Wert für die Sekunden den 
ich abziehen muss umd vom 1.1.1601 auf den 1.1.1900 als ausgangspunkt zu 
gelangen oder eine seite im internet die das ausrechnet? Dürfte ein 
Problem mit den Schaltjahren sein!

MFG Gast

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Konnte das Problem mit der verschiebung von rund 3 stunden beheben! Habe 
vor der umrechnung vergessen die Zeit in die Systemzeit umzuwandeln! 
Mittels ExSystemTimeToLocalTime. Jetzte geht das wirklich einwandfrei! 
Habe dafür wieder andere Porbleme die ich noch lösen muss!

MFG Gast

Autor: Dietmar S. (ideefix)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

und die 3 Tage lassen sich auch erklären, denn:

 - Schaltjahre finde alle 4 Jahre statt, immer, wenn die Zehner- und 
Einerstellen der Jahreszahl glatt durch 4 teilbar sind (4, 8, 12, 16 
...).

Ausnahmen:
1. Alle hundert Jahre (alle Jahreszahlen mit 00 am Ende) sind keine 
Schaltjahre (1700, 1800 1900,...)
2. Alle 400 Jahre ist trotzdem bei Endung 00 ein Schaltjahr (z.B. 2000)

Somit können deine 3 Tage Abweichung aus den Jahren 1700, 1800 und 1900.

Gruß

Dietmar

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.