解析日期错误
本文关键字:错误 日期 | 更新日期: 2023-09-27 18:12:53
string temp = dataGridView1.Rows[x].Cells[y].ToolTipText;//stored in dd-MM-yy hh:mm:ss
//MessageBox.Show(temp);
temp = temp[0].ToString() + temp[1].ToString() + temp[2].ToString() + temp[3].ToString() +
temp[4].ToString() + temp[5].ToString() + temp[6].ToString() + temp[7].ToString() +
temp[8].ToString() + temp[9].ToString();//converting to dd-MM-yyyy
labeldate = DateTime.ParseExact(temp,"dd-MM-yyyy",
CultureInfo.InvariantCulture);
我使用上面的代码将字符串(dd/mm/yyyy格式)转换为日期时间类型。它在我的电脑上运行得很好。但是在其他计算机上同样给出一个错误,说字符串没有被识别为日期时间。进一步调查。我看到其他电脑的温度显示的是1/1/2013或11/3/2013,而我的电脑显示的是01-01-2013或11-03-2013。我似乎解决不了这个问题。任何帮助吗?
这可能是文化问题。使用.ToString(CultureInfo.InvarientCulture)
,无论计算机上的区域性设置如何,您都将获得相同的结果。
如果您所做的只是试图获取日期时间的日期部分,您可以将代码简化为
string temp = dataGridView1.Rows[x].Cells[y].ToolTipText;//stored in dd-MM-yy hh:mm:ss
labeldate = DateTime.Parse(temp).Date;
至于文化问题,我将会提到。如果ToolTipText
对输入的文本使用默认区域性规则,那么解析器在试图解析回文本时应该使用相同的规则。