gpt4 book ai didi

c# - 在电子表格中以 'mm/dd/YYYY' 格式显示为日期的数据在 C# 中显示为数字

转载 作者:太空宇宙 更新时间:2023-11-03 19:11:01 28 4
gpt4 key购买 nike

我已使用查询表将带分隔符的 .doc 文件中的数据加载到 Excel 工作簿应用程序中。

随后我尝试遍历工作表上的数据并将数据保存到特定的变量类型中,例如:

string gender = range.Rows.Cells[index + 7].FormulaLocal;
DateTime birth_date =Convert.ToDateTime(range.Rows.Cells[index + 8].FormulaLocal);
int SSN = Convert.ToInt32(range.Rows.Cells[index + 9].FormulaLocal);

我得到一个异常(exception),但是上面的代码说

"String was not recognized as a valid DateTime."

现在在工作表的屏幕上,该字段中的数据显示为“07/09/1972”

但是在调试器中我得到的值是“26489”,这似乎是异常的来源,因为 c# 无法将其转换为 DateTime 对象。

有人知道这里发生了什么以及如何最好地解决它吗?

最佳答案

从 Office 转换时,必须使用 DateTime.FromOADate 方法。这是因为 Office 使用 OLE 自动化日期,这是一种计算浮点值的格式,从 1899 年 12 月的最后一天开始计算天数。小时和分钟表示为小数天数,因此添加值 26489 的几位小数将导致时间戳也代表小时、分钟和秒。

DateTime d = DateTime.FromOADate(26489);
Console.WriteLine(d);

会输出

1972-07-09 00:00:00

关于c# - 在电子表格中以 'mm/dd/YYYY' 格式显示为日期的数据在 C# 中显示为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20616406/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com