【问题标题】:ToOADate(); Convert Julian Date ExcelToOADate();转换儒略日期 Excel
【发布时间】:2023-03-24 21:59:01
【问题描述】:

我正在使用 OpenXML 读取和 Excel 电子表格,日期存储为数字。据我了解,这是一种朱利安格式,我在谷歌上说要使用 ToOADate();将这些数字转换为日期。

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

这似乎在系统命名空间中,但我已经有一个 using System 语句。

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

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

我得到的编译错误是

错误 4“int”不包含“ToOADate”的定义,并且找不到接受“int”类型的第一个参数的扩展方法“ToOADate”(您是否缺少 using 指令或程序集引用?)

【问题讨论】:

  • 也发布您的代码和错误
  • 刚刚添加了一些示例代码

标签: c# excel datetime ms-office openxml


【解决方案1】:

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

        DateTime dt = DateTime.FromOADate(23456);

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

在 DateTime 上还有一个 instance 方法,它执行相反的操作...

        double d = dt.ToOADate();

这种情况下的结果是 23456。

您的代码表明您正试图将其作为 int 上的 instance 方法调用,但这是行不通的。编译器告诉您 int 原语上没有这样的方法。

试试吧……

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

你会得到 2014 年 3 月 27 日。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2015-11-08
    相关资源
    最近更新 更多