我正在从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
答案 0 :(得分:1)
与EXCEL相关的问题是翻转日期,因此我使用xlRange.Cells[i, 1].Text
代替xlRange.Cells[i, 1].Value2
作为解决方案。