DateTimeOffset.AddMilliseconds() Method in C#

The DateTimeOffset.AddMilliseconds() method in C# returns a new DateTimeOffset object that adds a specified number of milliseconds to the value of the current instance. This method is useful for precise time calculations where millisecond accuracy is required.

The method accepts a double parameter representing the number of milliseconds to add. To subtract milliseconds, pass a negative value. The original DateTimeOffset instance remains unchanged as this method returns a new instance.

Syntax

Following is the syntax −

public DateTimeOffset AddMilliseconds(double value);

Parameters

  • value − A double representing the number of milliseconds to add. Can be positive (to add) or negative (to subtract).

Return Value

Returns a new DateTimeOffset object whose value is the sum of the date and time represented by the current instance and the number of milliseconds represented by value.

Adding Milliseconds

The following example demonstrates adding 3000 milliseconds (3 seconds) to a DateTimeOffset instance −

using System;

public class Demo {
    public static void Main() {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 08, 10, 4, 20, 10, new TimeSpan(-5, 0, 0));
        Console.WriteLine("DateTimeOffset (before adding milliseconds) = {0}", dateTimeOffset);
        DateTimeOffset res = dateTimeOffset.AddMilliseconds(3000);
        Console.WriteLine("DateTimeOffset (after adding milliseconds) = {0}", res);
    }
}

The output of the above code is −

DateTimeOffset (before adding milliseconds) = 8/10/2019 4:20:10 AM -05:00
DateTimeOffset (after adding milliseconds) = 8/10/2019 4:20:13 AM -05:00

Subtracting Milliseconds

The following example demonstrates subtracting 2000 milliseconds (2 seconds) from a DateTimeOffset instance −

using System;

public class Demo {
    public static void Main() {
        DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 08, 10, 4, 20, 10, new TimeSpan(-5, 0, 0));
        Console.WriteLine("DateTimeOffset (before subtracting milliseconds) = {0}", dateTimeOffset);
        DateTimeOffset res = dateTimeOffset.AddMilliseconds(-2000);
        Console.WriteLine("DateTimeOffset (after subtracting milliseconds) = {0}", res);
    }
}

The output of the above code is −

DateTimeOffset (before subtracting milliseconds) = 8/10/2019 4:20:10 AM -05:00
DateTimeOffset (after subtracting milliseconds) = 8/10/2019 4:20:08 AM -05:00

Practical Usage with Current Time

The following example shows how to use AddMilliseconds() with the current system time to create future timestamps −

using System;

public class Demo {
    public static void Main() {
        DateTimeOffset currentTime = DateTimeOffset.Now;
        Console.WriteLine("Current Time: {0}", currentTime);
        
        DateTimeOffset futureTime = currentTime.AddMilliseconds(5500);
        Console.WriteLine("Future Time (+5.5 seconds): {0}", futureTime);
        
        DateTimeOffset pastTime = currentTime.AddMilliseconds(-1500);
        Console.WriteLine("Past Time (-1.5 seconds): {0}", pastTime);
    }
}

The output of the above code is −

Current Time: 12/15/2023 10:30:45 AM +05:30
Future Time (+5.5 seconds): 12/15/2023 10:30:50 AM +05:30
Past Time (-1.5 seconds): 12/15/2023 10:30:44 AM +05:30

Conclusion

The DateTimeOffset.AddMilliseconds() method provides precise time manipulation by adding or subtracting milliseconds from a DateTimeOffset instance. It returns a new instance while preserving the original timezone offset, making it ideal for applications requiring millisecond-level time calculations.

Updated on: 2026-03-17T07:04:35+05:30

149 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements