C# 日期时间格式与excel

C# 日期时间格式与excel,c#,C#,我正在分析Excel创建的csv文件,发现文件中的日期已按以下格式指定:mm:ss.0 基于格式不是ISO标准的假设,我相信这可以用DateTime.FromOADate读取,但到目前为止,我无法在没有收到以下错误的情况下实现这一点:“字符串的格式不正确” 文件条目示例:59:03.0 以下是我尝试过的: foreach (var rec in record) { double temp = double.Parse(rec.date, System.Globalization.Num

我正在分析Excel创建的csv文件,发现文件中的日期已按以下格式指定:mm:ss.0

基于格式不是ISO标准的假设,我相信这可以用DateTime.FromOADate读取,但到目前为止,我无法在没有收到以下错误的情况下实现这一点:“字符串的格式不正确”

文件条目示例:59:03.0

以下是我尝试过的:

foreach (var rec in record)
{
     double temp = double.Parse(rec.date, System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);        
     MessageBox.Show(DateTime.FromOADate(temp).ToString());
}

任何帮助都将不胜感激。

您可以尝试手动解析此格式

string inputString = "59:03.0";
string[] split = inputString.Split(new char[] { ':', '.' });

DateTime dateTime = new DateTime(1, 1, 1, 0, int.Parse(split[0]), int.Parse(split[1]));

使用
ParseExact
,然后您可以指定格式并逐字告诉它“mm:ss.0”格式

例如:
DateTime date=DateTime.ParseExact(rec.date,“mm:ss.0”,null)

不过,您可能需要检查从Excel获得的格式,因为根据电子表格的不同,有时您会得到一个字符串,有时是一个日期时间,有时是一个数字(可以传递给FromOADate方法)。但是如果是你所描述的格式,上面的方法应该有效

注意:如果不为datetime指定任何日期部分,它将获得今天的日期


我正在使用,rec是一个IEnumerable记录=csvread.GetRecords();这很有效,我不知道这是ParseExact可以接受的格式。谢谢你的帮助!回答得好。但是,如果<代码> 0 是十分之一秒,那么您可以考虑“<代码>”MM:SS.F“”。看见