C# 中的 DateTimeOffset.FromUnixTimeMilliseconds() 方法

2025年3月17日 | 阅读 3 分钟

DateTimeOffset.FromUnixTimeMilliseconds() 方法将以毫秒表示的 Unix 时间戳转换为 “DateTimeOffset” 实例。UNIX 时间,它计算自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数,缺少时区信息。此方法允许开发人员通过创建保留日期和时间信息并包含关联时区偏移量的 “DateTimeOffset” 对象来弥补这一差距。它对于表示精确的时间表示很有用,包括时区意识,这在处理全球化应用程序、分布式系统以及跨各种时区同步时至关重要。

UNIX 时间

UNIX 时间 或 Posix 时间是一种通过简单地计算自 “纪元” 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数来跟踪时间的系统。该概念消除了与时区和夏令时相关的复杂性,提供了一种跨不同平台表示时间的标准化方法。

DateTimeOffset

DateTime 在 C# 中用于表示日期和时间。它缺少有关时间偏移和时区的信息。但是,DateTimeOffset 将包含与 UTC 的偏移量,使其适用于时区意识至关重要的情况。DataTimeOffset.FromUnixTimeMilliseconds() 方法在处理 Unix 时间戳时很有用,它将它们转换为 DateTimeOffset 实例,保留日期和时间信息以及时区偏移量。

UNIX 时间不考虑闰秒;为了弥补地球自转的不规则性,偶尔会对协调世界时进行调整。因此,Unix 时间系统与实际天文时间可能存在细微差异。

语法

DateTimeOffset.FromUnixTimeMilliseconds() 方法的语法。

public static DateTimeOffset FromUnixTimeMilliseconds(long milliseconds);

输出

DateTimeOffset.FromUnixTimeMilliseconds() Method in C#

说明

此程序用于将 Unix 时间戳 转换为 DateTimeOffset 实例。变量 unixTimeStampMilliseconds 是 long 数据类型,并以毫秒为单位保存 Unix 时间戳。之后,调用 DateTimeOffset.FromUnixTimeMilliseconds() 方法,并以 Unix 时间戳作为参数,创建一个 DateTimeOffset 实例。最后,显示原始 Unix 时间戳和 DateTimeOffset。

示例

让我们再举一个 C# 程序来处理时区。

输出

DateTimeOffset.FromUnixTimeMilliseconds() Method in C#

说明

此 C# 程序用于演示将表示特定事件时间的 Unix 时间戳(以毫秒为单位)转换为 DataTimeOffset 对象,同时考虑不同的时区偏移量。

程序中使用的变量是 “eventTimestampMilliseconds”,它表示以毫秒为单位的 Unix 时间戳;“eventTimeZoneOffset”,它表示具有特定时区偏移量的 TimeSpan;“TimeSpan.FromHours(-5)” 表示事件发生时的时区。“eventDatetimeOffset” 存储将 Unix 时间戳转换为具有指定时区偏移量的 “DateTimeOffset” 的结果。

DateTimeOffset.FromUnixTimeMilliseconds(eventTimestampMilliseconds) 方法将 Unix 时间戳转换为 DateTimeOffset 实例。ToOffset(eventTimeZoneOffset) 方法将调整“DateTimeOffset”实例的时区偏移量到指定的偏移量。

最后,程序显示原始 Unix 时间戳和带有自定义时区偏移量的结果 DateTimeOffset。

结论

总之,C# 中的 DateTimeOffset.FromUnixTimeMilliseconds() 方法对于将以毫秒为单位的 Unix 时间戳无缝转换为 DateTimeOffset 实例至关重要。此方法解决了 UNIX 时间中固有的时区信息不足的问题,为开发人员提供了一种创建 DateTimeOffset 对象的方法,该对象可以准确捕获日期和时间并包含必要的时区偏移量。它在需要精确时间表示的场景中特别有用,包括全球化应用程序、分布式系统以及跨各种时区的同步。当我们驾驭编程中时间管理的复杂性时,DateTimeOffset.FromUnixTimeMilliseconds() 方法是一个可靠的工具,使开发人员能够弥合 Unix 时间戳与全面、时区感知的 DateTimeOffset 表示之间的差距。