NTP und kernel

Persönliche Seite #947294
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
#947344
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.
Gast #947660
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
Gast #948095
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
#957343
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren