Excel十进制格式到C#DateTime

时间:2010-07-13 22:07:21

标签: c# excel datetime

在我的C#数据访问层...我正在从Excel中检索数据集...并且有一个十进制excel字段,它以格式:20090701返回日期。我需要将其转换为C#DateTime。最好的方法是什么?

3 个答案:

答案 0 :(得分:4)

DateTime.ParseExact( value.ToString(), "yyyymmdd" );

ParseExact方法允许您指定要转换的日期/时间的格式字符串。在您的情况下:四位数年份,然后是两位数月份,然后是一个月份两位数。

答案 1 :(得分:0)

如果你想在应用程序范围内实现它,我会做这样的事情。

System.Globalization.CultureInfo cultureInfo =
            new System.Globalization.CultureInfo("en-CA");
        // Defining various date and time formats.
        dateTimeInfo.LongDatePattern = "yyyyMMdd";
        dateTimeInfo.ShortDatePattern = "yyyyMMdd";
        dateTimeInfo.FullDateTimePattern = "yyyyMMdd";
        // Setting application wide date time format.
        cultureInfo.DateTimeFormat = dateTimeInfo;


    // Assigning our custom Culture to the application.
    //Application.CurrentCulture = cultureInfo;
    Thread.CurrentThread.CurrentCulture = cultureInfo;
    Thread.CurrentThread.CurrentUICulture = cultureInfo;

DateTime.Parse(excelDate);

答案 2 :(得分:0)

对于好的衡量标准,这是一个不太直观的答案。

var a = 20090701m;
var b = a / 10000;
var year = (int)b;
var c = (b - year) * 100;
var month = (int)c;
var day = (int)((c - month) * 100);
var dt = new DateTime(year, month, day);