Ich versuche, einige genaue Daten zu formatieren, um sie von einem Unix-Zeitstempel zu einem DateTime-Objekt zu konvertieren. Ich habe festgestellt, dass die AddSeconds-Methode eine Überladung aufweist, die eine Fließkommazahl akzeptiert.Ist .NET DateTime meine Sekunden abgeschnitten?
Meine Erwartung ist, dass ich eine Zahl wie 1413459415.93417
übergeben kann und es mir ein DateTime-Objekt mit Tick-Level-Genauigkeit geben wird. Ist das eine anständige Annahme, oder does the AddSeconds method still provide no better than millisecond precision?
Muss ich in der Konvertierung die Ticks selbst hinzufügen?
Mein Conversion-Code ist unten:
public static DateTime CalendarDateFromUnix(double unixTime)
{
DateTime calendarTime = UnixEpoch.AddSeconds(unixTime);
return calendarTime;
}
Ich erwarte, dass der ToString dieses Datums zu formatieren, wie 16 Oct 2014 11:36:55.93417
unter dem Formatstring mit:
dd MMM yyyy HH:mm:ss.fffff
Statt mir 16 Oct 2014 11:36:55.93417
geben, es gibt me 16 Oct 2014 11:36:55.93400
Mache ich etwas falsch oder ist .NET meine Floating-Point-Sekunden-Darstellung abgeschnitten? Ich bin neu in .NET, also ersteres ist durchaus möglich.
Dank
[Status-gebrochen-by-design] – CodesInChaos