如何使用 c# 将 1606813200000 转换为 2020-12-01T09:00:00.000Z

时间:2021-07-26 03:15:41

标签: c# datetime

在c#中无法将日期以下对象转换为日期时间

{"date":1606813200000 , "open":119000.0, "high":130900.0, "low":107500.0, "close":113300.0, "volume":36892044.0}

我不明白两者之间的关系

为什么是1606813200000 == 2020-12-01T09:00:00.000Z

你能看到,与站点 https://jsoneditoronline.org/ 的关系

1 个答案:

答案 0 :(得分:2)

您看到的数字是 Javascript 时间戳 (number of milliseconds elapsed since January 1, 1970 00:00:00 UTC)。您可以在任何浏览器控制台中对其进行测试:

enter image description here

this article 之后,您可以转换回 DateTime 对象:

public static DateTime ConvertFromUnixTimestamp(double timestamp)
{
    DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
    return origin.AddSeconds(timestamp / 1000); // convert from milliseconds to seconds
}

从评论中,我意识到还有这个方法 DateTimeOffset.FromUnixTimeMilliseconds

// Convert Timestampt to DateTimeOffset
var time = DateTimeOffset.FromUnixTimeMilliseconds(1606813200000);

// Convert back to ISO string
var isoString = time.ToString("o");