EN
C# / .NET - subtract nanoseconds from DateTime
2
points
In C# / .NET it is possible to subtract nanoseconds from DateTime
object in following way.
1. DateTime.AddTicks
method example
long nanoseconds = 500;
DateTime time1 = new DateTime(2012, 1, 1, 12, 0, 0, 100);
DateTime time2 = time1.AddTicks(-nanoseconds / 100);
Console.WriteLine($"Old time: {time1:o}");
Console.WriteLine($"New time: {time2:o}");
Output:
Old time: 2012-01-01T12:00:00.1000000
New time: 2012-01-01T12:00:00.0999995
Note: maximum precision for DateTime structure is 100 ns, so it is impossible to see difference during operating on times that are smaller than 100 ns.
2. DateTime.Subtract
method example
long nanoseconds = 500;
DateTime time1 = new DateTime(2012, 1, 1, 12, 0, 0, 100);
DateTime time2 = time1.Subtract(TimeSpan.FromTicks(nanoseconds / 100));
Console.WriteLine($"Old time: {time1:o}");
Console.WriteLine($"New time: {time2:o}");
Output:
Old time: 2012-01-01T12:00:00.1000000
New time: 2012-01-01T12:00:00.0999995
Note: maximum precision for DateTime structure is 100 ns, so it is impossible to see difference during operating on times that are smaller than 100 ns.