Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么不能转换此双精度值_C#_Date - Fatal编程技术网

C# 为什么不能转换此双精度值

C# 为什么不能转换此双精度值,c#,date,C#,Date,在上面的代码中,我从电子表格文档中获取日期数据。无法转换示例日期。 但其他日期可以转换 为什么我不能转换此日期,如何以不同的方式转换 DateTime.FromOADate(double.Parse("05.09.1977")); 我想用这个将这个字符串转换成日期时间。05.09.1977不是有效的双精度。它看起来像是一个实际的日期,要么是月.日.年,要么是日.月.年 要将其解析为日期时间,请使用以下任一方法: DateTime.ParseExact("05.09.1977", "dd.MM.

在上面的代码中,我从电子表格文档中获取日期数据。无法转换示例日期。 但其他日期可以转换

为什么我不能转换此日期,如何以不同的方式转换

DateTime.FromOADate(double.Parse("05.09.1977"));
我想用这个将这个字符串转换成日期时间。

05.09.1977不是有效的双精度。它看起来像是一个实际的日期,要么是月.日.年,要么是日.月.年

要将其解析为日期时间,请使用以下任一方法:

DateTime.ParseExact("05.09.1977", "dd.MM.yyyy", CultureInfo.InvariantCulture)

1977年9月5日不是有效的双倍。它看起来像是一个实际的日期,要么是月.日.年,要么是日.月.年

要将其解析为日期时间,请使用以下任一方法:

DateTime.ParseExact("05.09.1977", "dd.MM.yyyy", CultureInfo.InvariantCulture)

这样:

Console.WriteLine(DateTime.ParseExact("05.09.1977", "dd.MM.yyyy", CultureInfo.InvariantCulture));
输出:

1977年9月5日00:00:00

这样:

Console.WriteLine(DateTime.ParseExact("05.09.1977", "dd.MM.yyyy", CultureInfo.InvariantCulture));
输出:

1977年9月5日00:00:00

根据

返回与指定的OLE自动化日期等效的日期时间

来自OADATE双d的公共静态日期时间

参数

d 双重的

OLE自动化日期值

所以,你必须传递一个double作为参数

但是双倍。1977年9月5日

那怎么可能是双人的

这就是根据

返回与指定的OLE自动化日期等效的日期时间

来自OADATE双d的公共静态日期时间

参数

d 双重的

OLE自动化日期值

所以,你必须传递一个double作为参数

但是双倍。1977年9月5日

那怎么可能是双人的


这就是为什么不能将05.09.1977转换为双精度的原因,请尝试将其直接解析为DateTime:只需使用DateTime.Parse05.09.1977,它默认为第一天为1/1/1的DateTime。如果你想要一个OLE日期,其中第一天是1900年1月1日,那么使用DateTime对象并使用ToOADate。为什么它有+2?他在问为什么不是双精度的东西不能被解析为双精度的…相反,尝试用日期->双精度->日期来字符串你应该用日期->日期->日期05.09.1977来字符串不是可以转换为双精度的东西,试着直接解析为日期时间:只需使用DateTime.Parse05.09.1977,它默认为第一天为1/1/1的日期时间。如果你想要一个OLE日期,其中第一天是1900年1月1日,那么使用DateTime对象并使用ToOADate。为什么它有+2?他在问为什么不是双精度的东西不能被解析为双精度的…相反,你应该用双精度的日期->双精度的日期来字符串,你假设05是天,09是月,这可能是另一种方式。我投票赞成肖恩的回答你假设05是一天,09是一个月,可能正好相反。我投票赞成肖恩的回答