日期时间格式和excel格式

本文关键字:格式 excel 日期 时间 | 更新日期: 2023-09-27 17:55:03

我正在解析一个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());
}

感谢您的帮助。

日期时间格式和excel格式

使用ParseExact,那么您可以指定格式并直接告诉它"mm:ss.0"的格式。

如:DateTime date = DateTime.ParseExact(rec.date, "mm:ss.0", null);

你可能想检查你从Excel中得到的格式,因为根据电子表格,有时你会得到一个字符串,有时是DateTime,有时是一个数字(可以传递给FromOADate方法)。但如果是你所描述的格式,上面应该可以工作。

注意:不指定日期部分的日期时间,它将得到今天的日期。

http://msdn.microsoft.com/en-us/library/w2sa9yss%28v=vs.110%29.aspx

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

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]));