C# 从dateTime.TryParse获取自定义日期时间格式
我从具有多种数据类型(字符串、日期时间、整数)的excel文件中读取单元格值。C# 从dateTime.TryParse获取自定义日期时间格式,c#,datetime,tryparse,C#,Datetime,Tryparse,我从具有多种数据类型(字符串、日期时间、整数)的excel文件中读取单元格值。 在DateTime单元格中,可能有各种格式,如12/28/2013,8:30 使用此代码,(cell.ToString()是excel单元格值) 当我阅读12/28/2013时,它返回12/28/2013 12:00:00 AM 但是当我读到8:30时,它返回12/31/1899 12:00:00 AM 如您所见,我无法获得原始时间8:30 我做错什么了吗? 或者有没有办法解决这个问题 像这样试试看 string s
在DateTime单元格中,可能有各种格式,如
12/28/2013
,8:30
使用此代码,(cell.ToString()
是excel单元格值)
当我阅读12/28/2013
时,它返回12/28/2013 12:00:00 AM
但是当我读到
8:30
时,它返回12/31/1899 12:00:00 AM
如您所见,我无法获得原始时间
8:30
我做错什么了吗? 或者有没有办法解决这个问题 像这样试试看
string strDate = "8:00";
string format = "hh:mm";
DateTime res;
bool success = DateTime.TryParseExact(strDate, format, CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out res);
您可以使用
TryParseExact
并指定格式。有一个重载将string[]
patterns数组作为参数:
你可以这样称呼它:
DateTime.TryParseExact(cell.ToString(), new [] { "M/d/yyyy", "hh:mm" }, CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out _dt);
您可能需要准备更多的模式,以确保它适用于所有输入格式
DateTime.TryParseExact(cell.ToString(), new [] { "M/d/yyyy", "hh:mm" }, CultureInfo.InvariantCulture, DateTimeStyles.NoCurrentDateDefault, out _dt);