在上面的代码中,我从SpreadsheetDocument获取日期数据。示例日期无法转换。 但是其他日期可以转换。
为什么我不能转换此日期,以及如何以其他方式转换日期?
DateTime.FromOADate(double.Parse("05.09.1977"));
我想以此将此字符串转换为DateTime。
答案 0 :(得分:4)
"05.09.1977
不是有效的double
。看来这是实际日期(MONTH.DAY.YEAR或DAY.MONTH.YEAR)。
使用以下任一方法将其解析为DateTime
:
DateTime.ParseExact("05.09.1977", "dd.MM.yyyy", CultureInfo.InvariantCulture)
或
DateTime.ParseExact("05.09.1977", "MM.dd.yyyy", CultureInfo.InvariantCulture)
答案 1 :(得分:3)
这种方式:
Console.WriteLine(DateTime.ParseExact("05.09.1977", "dd.MM.yyyy", CultureInfo.InvariantCulture));
输出:
05/09/1977 00:00:00
答案 2 :(得分:1)
根据 DateTime.FromOADate(Double) method doc
返回等于指定的OLE自动化日期的DateTime。
公共静态DateTime FromOADate(双精度d);
参数
d 双重
一个OLE自动化日期值。
因此,您必须传递一个double作为参数
but double.Parse(“ 05.09.1977”)???
那怎么可能是双重的?
那是原因