6

为什么以下失败并带有“从'Int64'到'DateTime'的无效转换”。例外?

long oldDate=new DateTime(2015, 1, 1).Ticks;
DateTime newDate=Convert.ToDateTime(oldDate);

.Ticks 是 long/Int64,Convert.ToDateTime(Int64) MSDN 文档显示了接受 long/Int64 的方法。

public static DateTime ToDateTime(
  long value
)

编辑:正如下面的 ebyrob 所指出的,它应该是:

long oldDate=new DateTime(2015, 1, 1).Ticks;
DateTime newDate=new DateTime(oldDate);
4

2 回答 2

7

从 MSDN 文档中Convert.ToDateTime Method (Int64)

调用此方法总是抛出 InvalidCastException。

返回值 类型:System.DateTime 不支持此转换。不返回任何值。

来源: http: //msdn.microsoft.com/en-us/library/400f25sk.aspx(链接指向 .NET 4.5 文档,但所有版本都相同,直到 2.0)。

我不确定为什么不支持此功能,尤其是在new DateTime(oldDate)运行良好的情况下:

DateTime newDate = new DateTime(oldDate);
于 2013-10-30T23:07:49.230 回答
0

DateTime.FromBinary(oldDate)确实有效

于 2013-10-30T23:10:41.227 回答