我有一个数字,它是自1970年1月1日以来的秒数。它是用以下方法创建的:
var utcNow = (int) Math.Truncate(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
现在需要将该数字转换为字符串形式的日期,如下所示:
Tue, Jan 15, 2019
有人可以给我一些有关如何执行此操作的建议。我想自己可以格式化它,但是我需要一个有关如何首先将整数utcNow转换为日期时间的建议。
答案 0 :(得分:3)
static readonly DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
...
DateTime time = epoch.AddSeconds(utcNow);
您也可以反过来使用它:
var seconds = (time - epoch).TotalSeconds;
(给出double
,但您可以将其强制转换为int
或long
等)
答案 1 :(得分:3)
已经给出了一些答案,并且可以工作。但是,我认为这是最优雅的方式。我正在使用DateTimeOffset.FromUnixTimeSeconds(int64)
dist_matrix
现在您可以借助this博客条目将其转换为DateTime结构
答案 2 :(得分:2)
从当前时间中减去给定时间,并给出时间跨度实例,从中可以获得总秒数
var fromDate = new DateTime(1970,1 ,1);
var diffrance = DateTime.UtcNow.Subtract(fromDate);
Console.WriteLine(diffrance.TotalSeconds);