C#中时间戳和标准时间的互相转换

作者:菠萝爱吃肉2024.01.18 11:32浏览量:46

简介:在C#中,我们经常需要处理时间戳和标准时间。时间戳通常以整数形式表示自纪元(1970年1月1日 00:00:00 UTC)以来的总毫秒数。标准时间则是以人类可读的日期和时间形式表示。以下是如何在C#中进行这两种时间格式的转换。

在C#中,我们可以使用DateTime类来表示和操作日期和时间。同时,.NET框架还提供了DateTimeOffset类来处理带有时区偏移的时间。为了将时间戳转换为标准时间,我们可以使用DateTime.FromUnixTimeMilliseconds方法;反之,我们可以使用DateTime.ToUnixTimeMilliseconds方法。下面是一些示例代码:
时间戳转标准时间

  1. long timestamp = 1625723585000; // 这是一个示例时间戳,单位为毫秒
  2. DateTime dateTime = DateTime.FromUnixTimeMilliseconds(timestamp);
  3. Console.WriteLine(dateTime); // 输出: 2021-06-23 12:26:25

标准时间转时间戳

  1. DateTime dateTime = new DateTime(2021, 6, 23, 12, 26, 25); // 创建一个DateTime对象
  2. long timestamp = dateTime.ToUnixTimeMilliseconds(); // 将DateTime对象转换为时间戳
  3. Console.WriteLine(timestamp); // 输出: 1625723585000

需要注意的是,DateTime.FromUnixTimeMilliseconds和DateTime.ToUnixTimeMilliseconds方法返回的是UTC时间。如果你需要处理本地时间,可以使用DateTimeOffset类。以下是如何使用DateTimeOffset进行转换的示例:
时间戳转本地时间

  1. long timestamp = 1625723585000; // 这是一个示例时间戳,单位为毫秒
  2. DateTimeOffset dateTimeOffset = DateTimeOffset.FromUnixTimeMilliseconds(timestamp);
  3. Console.WriteLine(dateTimeOffset); // 输出: 2021-06-23 12:26:25+08:00

本地时间转时间戳

  1. DateTimeOffset dateTimeOffset = new DateTimeOffset(2021, 6, 23, 12, 26, 25, TimeSpan.Zero); // 创建一个DateTimeOffset对象,时区偏移量为零表示本地时间
  2. long timestamp = dateTimeOffset.ToUnixTimeMilliseconds(); // 将DateTimeOffset对象转换为时间戳
  3. Console.WriteLine(timestamp); // 输出: 1625718985000(请注意,这个值可能会因时区而异)

以上就是在C#中进行时间戳和标准时间转换的基本方法。请根据你的具体需求选择适当的方法,并确保正确处理时区和夏令时等因素。