Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
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
longvalue 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.
