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.
xxxxxxxxxx
1
public static class TimeUtils
2
{
3
public static DateTime GetDateTime(long milliseconds,
4
DateTimeKind kind = DateTimeKind.Utc)
5
{
6
long ticks = milliseconds * TimeSpan.TicksPerMillisecond;
7
8
return new DateTime(ticks, kind );
9
}
10
}
Example:
xxxxxxxxxx
1
Console.WriteLine(TimeUtils.GetDateTime(0));
2
Console.WriteLine(TimeUtils.GetDateTime(63701329632387));
Output:
xxxxxxxxxx
1
01/01/0001 00:00:00
2
08/13/2019 21:47:12
Note: time is measured since 01-01-0001 00:00:00.000.
xxxxxxxxxx
1
public static class TimeUtils
2
{
3
public static DateTime GetDateTime(long milliseconds)
4
{
5
long ticks = DateTime.UnixEpoch.Ticks + milliseconds
6
* TimeSpan.TicksPerMillisecond;
7
8
return new DateTime(ticks, DateTimeKind.Utc);
9
}
10
}
Example:
xxxxxxxxxx
1
Console.WriteLine(TimeUtils.GetDateTime(0));
2
Console.WriteLine(TimeUtils.GetDateTime(1565732877968));
Output:
xxxxxxxxxx
1
01/01/1970 00:00:00
2
08/13/2019 21:47:57
Note: Unix time is measured from 01-01-1970 UTC date.
xxxxxxxxxx
1
Console.WriteLine(DateTimeOffset.FromUnixTimeMilliseconds(0));
2
Console.WriteLine(DateTimeOffset.FromUnixTimeMilliseconds(1565732877968));
Output:
xxxxxxxxxx
1
01/01/1970 00:00:00
2
08/13/2019 21:47:57
Node: this approach is available since .NET 4.6.