C#:Excel日期FromOADate翻转日期和月份

时间:2016-06-24 14:16:21

标签: c# asp.net excel date datetime

我正在从excel文件中读取日期值,格式为:(法语格式)“jj / mm / aaaa hh:mm:ss”所以它是:“dd / MM / yyyy HH:mm:ss”

当试图在C#中获取此值时,我得到一个双倍,所以我使用fromOADate函数解决了它

但问题是像04/01/2016(1月)这样的日期,即使我设置了格式,我也会将其翻到2016年4月1日。

double dtvalue = xlRange.Cells[i, 1].Value2;                           
dateString = DateTime.FromOADate(dtvalue).ToString("dd/MM/yyyy HH:mm");

我尝试将格式更改为:

dateString = DateTime.FromOADate(dtvalue).ToString("MM/dd/yyyy HH:mm");

并添加此代码以便将其拆分并重新设置:

date = dateString .Split(' ');
string[] firstPart = date[0].Split('/');

day = int.Parse(firstPart[0]);
month = int.Parse(firstPart[1]);
year = int.Parse(firstPart[2]);

DateTime newDate = new DateTime(year, month, day);

newDateString = newDate.ToString("dd/MM/yyyy") + " " + date[1];

它适用于某些日期,而其他日期则不起作用。

我该如何解决这个问题?

我正在使用ASP.NET MVC5,C#,使用Excel Interop

1 个答案:

答案 0 :(得分:1)

与EXCEL相关的问题是翻转日期,因此我使用xlRange.Cells[i, 1].Text代替xlRange.Cells[i, 1].Value2作为解决方案。