2016-12-15 6 views
-2

Ich habe zwei Uint32-Variablen. Sie repräsentieren einen Unix-Zeitstempel in Sekunden und Mikrosekunden. Die erste Variable enthält die Sekunden und die zweite die Mikrosekunden. Wie kann ich sie zusammenfügen und sie zu einem DateTimeOffset konvertieren? Ich möchte eine Antwort speziell für .NET 4.6, die die neue FromUnixTimeSeconds() -Methode und eine Antwort, die mit Code vor .NET 4.6 arbeiten wird.Sekunden und Mikrosekunden (Unix-Zeit) zu DateTimeOffset

+0

Also, rufen Sie einfach FromUnixTimeSeconds mit Sekunden, dann fügen Mikrosekunden Ergebnis? – Evk

+0

Es gibt keine AddMicroseconds-Methode für DateTimeOffset. Ich denke, ich brauche zuerst Ticks. – Mark

Antwort

1

Mikrosekunde ist 1/1.000.000 einer Sekunde. DateTimeOffset hat in der Tat nicht AddMicroseconds, aber es hat AddTicks. Tick ​​ist 1/10.000.000 eines zweiten, so:

DateTimeOffset.FromUnixTimeSeconds(seconds).AddTicks(microSeconds * 10); 

Vor 4.6 .NET Sie können etwas tun:

new DateTimeOffset(DateTime.SpecifyKind(new DateTime(1970, 1, 1), DateTimeKind.Utc)).AddSeconds(seconds).AddTicks(microSeconds * 10);