gpt4 book ai didi

c# - 将秒数添加到具有 ArgumentOutOfRangeException 的有效 double 结果的 DateTime

转载 作者:可可西里 更新时间:2023-11-01 08:03:15 25 4
gpt4 key购买 nike

下面的代码会崩溃和烧毁,我不明白为什么:

DateTime dt = new DateTime(1970,1,1,0,0,0,0, DateTimeKind.Utc);
double d = double.Parse("1332958778172");

Console.Write(dt.AddSeconds(d));

有人能告诉我这是怎么回事吗?我只是似乎无法弄清楚为什么...

编辑

此值来自 Salesforce REST API,据我所知,它是一个 Unix 纪元时间戳。 “ token 发行时间,表示为自 Unix 纪元(1970 年 1 月 1 日 00:00:00 UTC)以来的秒数。”

解决方案

Salesforce REST API 实际上在执行 OAuth 请求时为 issued_at 字段发送回毫秒,而他们说他们正在发送秒数...

最佳答案

正如其他人所说,问题是值太大。

查看它后,我相信它代表自 Unix 纪元以来的毫秒,而不是,所以您想要:

DateTime dt = new DateTime(1970,1,1,0,0,0,0, DateTimeKind.Utc);
double d = double.Parse("1332958778172"); // Or avoid parsing if possible :)
Console.Write(dt.AddMilliseconds(d));

或者在调用 AddSeconds 之前除以 1000 - 但显然这会丢失数据。

关于c# - 将秒数添加到具有 ArgumentOutOfRangeException 的有效 double 结果的 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9914028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com