【发布时间】:2016-06-24 14:16:21
【问题描述】:
我正在从 excel 文件中读取日期值,格式为:(法语格式)“jj/mm/aaaa hh:mm:ss”,所以它是:“dd/MM/yyyy HH:mm:ss”
当尝试在 C# 中获取此值时,我得到一个双精度值,因此我使用 fromOADate 函数解决了它
但问题是对于像 04/01/2016(1 月)这样的日期,即使我设置了格式,我也会将其翻转为 01/04/2016。
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 互操作
【问题讨论】:
-
您可以尝试使用我们的文化:
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); -
我只添加这条指令?还是我应该做点什么?因为我试过了,还是不行,结果一样
-
请澄清:C# 中的日期是否正确,然后返回 Excel 时不正确?还是在 C# 中不正确?
-
在Excel中是正确的,但在返回C#时不正确。
标签: c# asp.net excel date datetime