C# 将日期从时间开始转换为 DateTime

C# Convert Date From Begining of Time To DateTime

好的,我正在使用 OLEDB 连接阅读 excel sheet。当值的格式如下:

40909   41274

它们总是相差 365,所以我知道它们与 DateTime 数据类型之间必须存在相关性。我已经尝试了很多关闭 Google 的东西,并不断收到格式异常。

将这些转换为简单 MM/DD/YYYY 值的最简单方法是什么。

使用 DateTime.FromOADate( 其中 "Returns a DateTime equivalent to the specified OLE Automation Date."

using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine(DateTime.FromOADate(40909));
        Console.WriteLine(DateTime.FromOADate(41274));
    }
}

产出

1/1/2012 12:00:00 AM
12/31/2012 12:00:00 AM

这个数字是如何计算的,它是从 12/30/1899 开始的天数,一天中的时间表示为数字的小数部分。例如,午夜为 .0,中午为 .5.

12/30/1899 之前的日期用负数表示。