EN
C# / .NET - create date and time from milliseconds
12
points
In C# / .NET it is possible to get DateTime instance from total milliseconds in few ways.
1. DateTime from total milliseconds example
public static class TimeUtils
{
public static DateTime GetDateTime(long milliseconds,
DateTimeKind kind = DateTimeKind.Utc)
{
long ticks = milliseconds * TimeSpan.TicksPerMillisecond;
return new DateTime(ticks, kind );
}
}Example:
Console.WriteLine(TimeUtils.GetDateTime(0));
Console.WriteLine(TimeUtils.GetDateTime(63701329632387));Output:
01/01/0001 00:00:00
08/13/2019 21:47:12Note: time is measured since 01-01-0001 00:00:00.000.
2. DateTime from Unix total milliseconds custom example
public static class TimeUtils
{
public static DateTime GetDateTime(long milliseconds)
{
long ticks = DateTime.UnixEpoch.Ticks + milliseconds
* TimeSpan.TicksPerMillisecond;
return new DateTime(ticks, DateTimeKind.Utc);
}
}Example:
Console.WriteLine(TimeUtils.GetDateTime(0));
Console.WriteLine(TimeUtils.GetDateTime(1565732877968));Output:
01/01/1970 00:00:00
08/13/2019 21:47:57Note: Unix time is measured from 01-01-1970 UTC date.
3. DateTimeOffset.FromUnixTimeMilliseconds method example
Console.WriteLine(DateTimeOffset.FromUnixTimeMilliseconds(0));
Console.WriteLine(DateTimeOffset.FromUnixTimeMilliseconds(1565732877968));Output:
01/01/1970 00:00:00
08/13/2019 21:47:57Node: this approach is available since .NET 4.6.