如何使用 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");
?
1606813200000
是1970-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#如何将json字符串转为datatable 求详细解答