【问题标题】:C# : Excel date FromOADate flips day and monthC#:Excel 日期 FromOADate 翻转日期和月份
【发布时间】: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


【解决方案1】:

这是一个与 EXCEL 相关的问题,它会翻转日期,因此我使用xlRange.Cells[i, 1].Text 而不是xlRange.Cells[i, 1].Value2 作为解决方案。

【讨论】:

    猜你喜欢
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多