简介:在C#中,我们经常需要处理时间戳和标准时间。时间戳通常以整数形式表示自纪元(1970年1月1日 00:00:00 UTC)以来的总毫秒数。标准时间则是以人类可读的日期和时间形式表示。以下是如何在C#中进行这两种时间格式的转换。
在C#中,我们可以使用DateTime类来表示和操作日期和时间。同时,.NET框架还提供了DateTimeOffset类来处理带有时区偏移的时间。为了将时间戳转换为标准时间,我们可以使用DateTime.FromUnixTimeMilliseconds方法;反之,我们可以使用DateTime.ToUnixTimeMilliseconds方法。下面是一些示例代码:
时间戳转标准时间
long timestamp = 1625723585000; // 这是一个示例时间戳,单位为毫秒DateTime dateTime = DateTime.FromUnixTimeMilliseconds(timestamp);Console.WriteLine(dateTime); // 输出: 2021-06-23 12:26:25
标准时间转时间戳
DateTime dateTime = new DateTime(2021, 6, 23, 12, 26, 25); // 创建一个DateTime对象long timestamp = dateTime.ToUnixTimeMilliseconds(); // 将DateTime对象转换为时间戳Console.WriteLine(timestamp); // 输出: 1625723585000
需要注意的是,DateTime.FromUnixTimeMilliseconds和DateTime.ToUnixTimeMilliseconds方法返回的是UTC时间。如果你需要处理本地时间,可以使用DateTimeOffset类。以下是如何使用DateTimeOffset进行转换的示例:
时间戳转本地时间
long timestamp = 1625723585000; // 这是一个示例时间戳,单位为毫秒DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeMilliseconds(timestamp);Console.WriteLine(dateTimeOffset); // 输出: 2021-06-23 12:26:25+08:00
本地时间转时间戳
DateTimeOffset dateTimeOffset = new DateTimeOffset(2021, 6, 23, 12, 26, 25, TimeSpan.Zero); // 创建一个DateTimeOffset对象,时区偏移量为零表示本地时间long timestamp = dateTimeOffset.ToUnixTimeMilliseconds(); // 将DateTimeOffset对象转换为时间戳Console.WriteLine(timestamp); // 输出: 1625718985000(请注意,这个值可能会因时区而异)
以上就是在C#中进行时间戳和标准时间转换的基本方法。请根据你的具体需求选择适当的方法,并确保正确处理时区和夏令时等因素。