我试图在C#中将日期和时间值从JSON字符串转换为double,但我始终得到以下错误。

下面是我正在尝试调试的代码。
DateTime baseDate = DateTime.SpecifyKind(DateTime.Parse("1970-01-01"), DateTimeKind.Utc);
docRoot.scheduleDate = baseDate.AddSeconds((double)docRoot.scheduleDate);我明白这个错误是什么意思,但我一直很难找到解决办法。我试过下面的方法,但没有成功。
docRoot.scheduleDate转换为字符串,然后尝试使用Convert.ToDouble(stringScheduleDate)将字符串转换为double。这里唯一的问题是docRoot.scheduleDate中的特殊字符("10/10/2019 08:29:30")导致格式错误。我相信,如果我删除特殊字符,我会解决这个问题。但我想知道是否有一种不同的方法来克服这个例外呢?
在我看来,转换成字符串然后删除特殊字符似乎有点效率低下,所以如果有人愿意提供一些其他想法,我非常感激。
发布于 2019-10-16 16:21:21
你应该可以很容易地让蜱数加倍:
docRoot.scheduleDate = baseDate.AddSeconds((double)docRoot.scheduleDate.Second);我刚刚意识到这是一个add秒方法,这样会更好
也值得注意。OADate内部也使用一个私有InternalTicks属性。所以这也会引起问题。
发布于 2019-10-16 16:22:48
使用DateTime.ToOADate获取https://learn.microsoft.com/en-us/dotnet/api/system.datetime.tooadate的十进制表示,DateTime.FromOADate反序列化。
https://stackoverflow.com/questions/58417631
复制相似问题