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

Posted

技术标签:

【中文标题】如何使用 c# 将 1606813200000 转换为 2020-12-01T09:00:00.000Z [重复]【英文标题】:how convert 1606813200000 to 2020-12-01T09:00:00.000Z with c# [duplicate] 【发布时间】:2021-10-02 01:16:55 【问题描述】:

在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/的关系?

【问题讨论】:

string isoDate = DateTimeOffset.FromUnixTimeMilliseconds(1606813200000).ToString("o");? 16068132000001970-01-01T00:00:00.000Z(“unix 纪元”)和2020-12-01T09:00:00.000Z 之间的时间(以毫秒为单位)。你可以输入here看到这个。 这是否回答了您的问题Convert epoch/unix to Datetime 和C# Epoch time to date and timezone convertion 【参考方案1】:

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

在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");

【讨论】:

以上是关于如何使用 c# 将 1606813200000 转换为 2020-12-01T09:00:00.000Z [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C#里如何将XML格式字符串转成XML文件?

C#如何将double转为char

C#如何将double转为char

求问 C#如何将json字符串转为datatable 求详细解答

如何使用C#将包含文字、图片和表格的二进制数据写入到word文件中

C#如何将OBJECT转换成数组