C#:获取带有微秒的 unix 时间戳
C#: Get unix timestamp with microseconds
如何在 .NET 5 中获取以微秒为单位的当前 unix 时间戳?我环顾四周,只找到了一种方法,可以用 ToUnixTimeMilliseconds
以毫秒为单位获取它,没有任何东西可以包括微秒。
您只需从 DateTimeOffset
中减去 Unix 纪元 (1970-01-01T00:00:00Z) 即可得到 TimeSpan
,然后通过除以总计得到微秒10 的刻度数:
using System;
public static class DateTimeOffsetExtensions
{
private static readonly DateTimeOffset UnixEpoch =
new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
public static long ToUnixTimeMicroseconds(this DateTimeOffset timestamp)
{
TimeSpan duration = timestamp - UnixEpoch;
// There are 10 ticks per microsecond.
return duration.Ticks / 10;
}
}
public class Test
{
static void Main()
{
DateTimeOffset now = DateTimeOffset.UtcNow;
Console.WriteLine(now.ToUnixTimeMicroseconds());
}
}
如何在 .NET 5 中获取以微秒为单位的当前 unix 时间戳?我环顾四周,只找到了一种方法,可以用 ToUnixTimeMilliseconds
以毫秒为单位获取它,没有任何东西可以包括微秒。
您只需从 DateTimeOffset
中减去 Unix 纪元 (1970-01-01T00:00:00Z) 即可得到 TimeSpan
,然后通过除以总计得到微秒10 的刻度数:
using System;
public static class DateTimeOffsetExtensions
{
private static readonly DateTimeOffset UnixEpoch =
new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
public static long ToUnixTimeMicroseconds(this DateTimeOffset timestamp)
{
TimeSpan duration = timestamp - UnixEpoch;
// There are 10 ticks per microsecond.
return duration.Ticks / 10;
}
}
public class Test
{
static void Main()
{
DateTimeOffset now = DateTimeOffset.UtcNow;
Console.WriteLine(now.ToUnixTimeMicroseconds());
}
}