DateTimeOffset.FromUnixTimeMilliseconds() Method in C#

The DateTimeOffset.FromUnixTimeMilliseconds() method in C# is used to convert a Unix timestamp expressed as the number of milliseconds that have elapsed since 1970-01-01T00:00:00Z (Unix epoch) to a DateTimeOffset value.

Unix timestamps are commonly used in web APIs, databases, and cross-platform applications as a standard way to represent time. This method provides an easy conversion from the Unix millisecond format to C#'s DateTimeOffset structure.

Syntax

Following is the syntax for the method −

public static DateTimeOffset FromUnixTimeMilliseconds(long milliseconds);

Parameters

  • milliseconds − A long value representing the number of milliseconds that have elapsed since 1970-01-01T00:00:00Z (January 1, 1970, at 12:00 AM UTC).

Return Value

Returns a DateTimeOffset object that represents the date and time equivalent to the Unix timestamp in milliseconds.

Using FromUnixTimeMilliseconds() with Basic Values

Example 1

Converting a small Unix timestamp (30 seconds after epoch) −

using System;

public class Demo {
    public static void Main() {
        DateTimeOffset offset = DateTimeOffset.FromUnixTimeMilliseconds(30000);
        Console.WriteLine("DateTimeOffset = {0} ", offset);
        Console.WriteLine("DateTimeOffset (custom format) = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", offset);
    }
}

The output of the above code is −

DateTimeOffset = 1/1/1970 12:00:30 AM +00:00
DateTimeOffset (custom format) = 01 January 1970, 12:00:30

Example 2

Converting Unix timestamp zero (exact epoch time) −

using System;

public class Demo {
    public static void Main() {
        DateTimeOffset offset = DateTimeOffset.FromUnixTimeMilliseconds(0);
        Console.WriteLine("DateTimeOffset = {0} ", offset);
        Console.WriteLine("DateTimeOffset (custom format) = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", offset);
    }
}

The output of the above code is −

DateTimeOffset = 1/1/1970 12:00:00 AM +00:00
DateTimeOffset (custom format) = 01 January 1970, 12:00:00

Using FromUnixTimeMilliseconds() with Modern Timestamps

Example

Converting a modern Unix timestamp and demonstrating time zone handling −

using System;

public class Demo {
    public static void Main() {
        // Unix timestamp for 2023-12-25 12:00:00 UTC
        long unixMilliseconds = 1703505600000L;
        DateTimeOffset dateTime = DateTimeOffset.FromUnixTimeMilliseconds(unixMilliseconds);
        
        Console.WriteLine("Unix Milliseconds: " + unixMilliseconds);
        Console.WriteLine("Converted DateTime (UTC): " + dateTime);
        Console.WriteLine("Local Time: " + dateTime.ToLocalTime());
        Console.WriteLine("Formatted: " + dateTime.ToString("yyyy-MM-dd HH:mm:ss zzz"));
    }
}

The output of the above code is −

Unix Milliseconds: 1703505600000
Converted DateTime (UTC): 12/25/2023 12:00:00 PM +00:00
Local Time: 12/25/2023 12:00:00 PM +00:00
Formatted: 2023-12-25 12:00:00 +00:00

Common Use Cases

  • API Integration − Converting timestamps from REST APIs that return Unix time in milliseconds.

  • Database Operations − Working with databases that store timestamps as Unix milliseconds.

  • Cross-platform Applications − Ensuring consistent time representation across different systems.

Conclusion

The DateTimeOffset.FromUnixTimeMilliseconds() method provides a straightforward way to convert Unix timestamps in milliseconds to C#'s DateTimeOffset objects. This is essential for working with modern web applications and APIs that commonly use Unix time format for date and time representation.

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

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements