ToOADate();转换朱利安日期Excel

时间:2014-04-28 17:37:31

标签: c# excel datetime ms-office openxml

我使用OpenXML来读取和优秀的电子表格,日期存储为数字。据我所知,这是一种朱利安格式,我google的每个地方都说使用ToOADate();将这些数字转换为日期。

我遇到的问题是ToOADate();在我的编译中没有解决。我正在使用Visual Basic 2013,C#Asp.net MVC应用程序。

看起来这是在系统命名空间中,但我已经有了一个使用系统语句。

我显然缺少一些非常基本的东西 - 有人可以帮忙吗?

 var test = 41725;
DateTime test2 = test.ToOADate();

我得到的编译错误是

错误4'int'不包含'ToOADate'的定义,也没有扩展方法'ToOADate'接受类型'int'的第一个参数(你是否缺少using指令或汇编引用?)< / p>

1 个答案:

答案 0 :(得分:3)

如果要将数字转换为Framework DateTime实例,则很可能是在DateTime结构上的 static 方法之后。

        DateTime dt = DateTime.FromOADate(23456);

此方法需要限定为DateTime。在我的例子中,结果是1963年3月20日。

DateTime上还有一个实例方法可以反向...

        double d = dt.ToOADate();

本案的结果是23456.

您的代码表明您尝试将其称为 int 上的实例方法,但这不起作用。编译器告诉你int原语上没有这样的方法。

尝试改为......

 var test = 41725;
DateTime test2 = DateTime.FromOADate(test);

你将在2014年3月27日到达。