1. 测试一
代码
static void Main(string[] args)
{
var now_timestamp = DateTimeOffset.Now.ToUnixTimeSeconds();
var utc_now_timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
if (now_timestamp == utc_now_timestamp) Console.WriteLine("always equals");
Console.WriteLine($"now timestamp :{now_timestamp}");
Console.WriteLine($"now timestamp datetime offset:{DateTimeOffset.FromUnixTimeSeconds(now_timestamp)}");
Console.WriteLine($"now timestamp datetime offset to datetime:{DateTimeOffset.FromUnixTimeSeconds(now_timestamp).DateTime}");
Console.WriteLine($"now timestamp datetime offset to local datetime:{DateTimeOffset.FromUnixTimeSeconds(now_timestamp).LocalDateTime}");
Console.WriteLine($"utc_now timestamp :{utc_now_timestamp}");
Console.WriteLine($"utc now timestamp datetime offset:{DateTimeOffset.FromUnixTimeSeconds(utc_now_timestamp)}");
Console.WriteLine($"utc now timestamp datetime offset to datetime:{DateTimeOffset.FromUnixTimeSeconds(utc_now_timestamp).DateTime}");
Console.WriteLine($"utc now timestamp datetime offset to local datetime:{DateTimeOffset.FromUnixTimeSeconds(utc_now_timestamp).LocalDateTime}");
}
结果

2. 测试二
代码
static void Main(string[] args)
{
Test();
}
public static void Test()
{
var utc_now = DateTimeOffset.UtcNow;
var utc_now_timestamp = utc_now.ToUnixTimeSeconds();
var now = DateTimeOffset.Now;
var now_timestamp = now.ToUnixTimeSeconds();
Console.WriteLine($"utc now:{utc_now}");
Console.WriteLine($"utc now timestamp:{utc_now_timestamp}");
Console.WriteLine($"now:{now}");
Console.WriteLine($"now timestamp:{now_timestamp}");
Console.WriteLine($"datetime now:{DateTime.Now}");
Console.WriteLine($"datetime utc now:{DateTime.UtcNow}");
Console.WriteLine("我是分割线---------------");
var now_convert = ConvertStampToDateTime(now_timestamp);
Console.WriteLine($"now convert:{now_convert}");
Console.WriteLine("我是分割线---------------");
var now_offset = ConvertStampToDateTimeUpgrade(now_timestamp);
Console.WriteLine($"now offset:{now_offset}");
Console.WriteLine($"now offset date:{now_offset.Date}");
Console.WriteLine($"now offset datetime:{now_offset.DateTime}");
Console.WriteLine($"now offset local datetime:{now_offset.LocalDateTime}");
Console.WriteLine($"now offset utc datetime:{now_offset.UtcDateTime}");
}
public static DateTime ConvertStampToDateTime(long timestamp)
{
var dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
dtStart = TimeZoneInfo.ConvertTimeFromUtc(new DateTime(1970, 1, 1),TimeZoneInfo.Local);
return dtStart.Add(TimeSpan.FromTicks(long.Parse(timestamp + "0000000")));
}
public static DateTimeOffset ConvertStampToDateTimeUpgrade(long timestamp)
{
return DateTimeOffset.FromUnixTimeSeconds(timestamp);
}
结果
