C# 纪元时间到实时转换方法
本指南演示了如何将 Unix 纪元时间(自 1970 年 1 月 1 日起的秒数,UTC)转换为 C# 中可读的日期和时间。 有几种方法可以满足不同的 .NET 版本。
现代 .NET(核心 >= 2.1 及更高版本):
最简单的方法利用内置函数:
<code class="language-csharp">DateTime realTime = DateTime.UnixEpoch.AddSeconds(epochSeconds); // For seconds DateTime realTimeMillis = DateTime.UnixEpoch.AddMilliseconds(epochMilliseconds); // For milliseconds</code>
使用 DateTimeOffset(自 2020 年起推荐):
DateTimeOffset
提供改进的时区处理:
<code class="language-csharp">DateTimeOffset realTimeOffset = DateTimeOffset.FromUnixTimeSeconds(epochSeconds); // For seconds DateTimeOffset realTimeOffsetMillis = DateTimeOffset.FromUnixTimeMilliseconds(epochMilliseconds); // For milliseconds DateTime realTime = realTimeOffset.DateTime; // Extract DateTime if needed</code>
对于较旧的 .NET 版本(2020 年之前):
对于缺乏上述方法的旧版.NET框架,需要自定义函数:
<code class="language-csharp">private static readonly DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); public static DateTime FromUnixTime(long unixTime) { return epoch.AddSeconds(unixTime); }</code>
此函数将给定的 unixTime
(以秒为单位)添加到 Unix 纪元,从而产生代表实时的 DateTime
对象。 请记住处理潜在的异常(例如,ArgumentOutOfRangeException
)。
选择最适合您的 .NET 版本的方法。 DateTimeOffset
通常因其增强的精度和时区意识而受到青睐。
以上是如何在C#中将时代转换为实时时间?的详细内容。更多信息请关注PHP中文网其他相关文章!