如何在C#中将Unixtime转换为DateTime类,反之亦然

本文概述

  • A.Unixtime到DateTime
  • B. DateTime到Unixtime
Unix时间基本上是指从1970年1月1日00:00:00(UTC)起经过的秒数。为了将特定的日期和时间转换为Unix时间值, 我们需要从要转换为Unix时间的日期中减去上述日期。尽管你可能不相信, 但是.NET c#中没有使用默认方法将这种单位转换为日期时间的标准方法, 相反, 你将需要编写一些额外的逻辑来在这些值之间进行转换。
在本文中, 我们将向你展示如何在C#中将unixtime转换为DateTime的实例。
A.Unixtime到DateTime为了将unix时间转换为C#中的DateTime实例, 你只需将给定的时间戳(以毫秒为单位)添加到具有以下日期的DateTime实例中:1/1/1970 00:00:00, 如下所示片段, 方法UnixTimeToDateTime希望将unix时间戳的长表示形式作为第一个参数, 并返回修改后的日期:
/// < summary> /// Convert Unix time value to a DateTime object./// < /summary> /// < param name="unixtime"> The Unix time stamp you want to convert to DateTime.< /param> /// < returns> Returns a DateTime object that represents value of the Unix time.< /returns> public DateTime UnixTimeToDateTime(long unixtime){System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc); dtDateTime = dtDateTime.AddMilliseconds(unixtime).ToLocalTime(); return dtDateTime; }

以下示例显示如何使用方法和输出:
// Outputs: 21-Mar-19 10:32:53 PMConsole.WriteLine(UnixTimeToDateTime(1553225573655));

B. DateTime到Unixtime如果你正在创建某种需要unix时间戳格式的API, 则可以使用以下方法轻松地将DateTime实例转换为上述格式:
/// < summary> /// Convert a DateTime to a unix timestamp/// < /summary> /// < param name="MyDateTime"> The DateTime object to convert into a Unix Time< /param> /// < returns> < /returns> public long DateTimeToUnix(DateTime MyDateTime){TimeSpan timeSpan = MyDateTime - new DateTime(1970, 1, 1, 0, 0, 0); return (long)timeSpan.TotalSeconds; }

以下示例显示如何使用方法和输出:
// Prints "1553299673"Console.WriteLine(DateTimeToUnix(DateTime.UtcNow));

【如何在C#中将Unixtime转换为DateTime类,反之亦然】编码愉快!

    推荐阅读