C# 将字符串转换为日期有困难吗?
我写了一个程序,可以处理诸如删除和更新、存储、搜索和所有客户之类的文件,但问题是,当我更新文件时,我总是会遇到以下错误 字符串未被识别为有效的日期时间。 此错误发生在反序列化方法中:C# 将字符串转换为日期有困难吗?,c#,C#,我写了一个程序,可以处理诸如删除和更新、存储、搜索和所有客户之类的文件,但问题是,当我更新文件时,我总是会遇到以下错误 字符串未被识别为有效的日期时间。 此错误发生在反序列化方法中: public Order Deserialize(string str) { Order order = new Order(); var strOrder = str.Split(','); order.Id = int.Parse(st
public Order Deserialize(string str)
{
Order order = new Order();
var strOrder = str.Split(',');
order.Id = int.Parse(strOrder[0]);
**order.Date = DateTime.Parse(strOrder[1]);**
order.Price = int.Parse(strOrder[2]);
order.Description = strOrder[3];
order.CustomerId = int.Parse(strOrder[4]);
return order;
}
这很可能与区域性设置有关。您需要为DateTime.ParseExact方法指定其中一个重载所需的格式:
这很可能与区域性设置有关。您需要为DateTime.ParseExact方法指定其中一个重载所需的格式: 试试看 按评论编辑。 导入
System.Globalization
,然后尝试以下操作:
var cultureInfo = new CultureInfo("en-US");
DateTime dateTime = Convert.ToDateTime(strOrder[1], cultureInfo);
试一试
按评论编辑。
导入System.Globalization
,然后尝试以下操作:
var cultureInfo = new CultureInfo("en-US");
DateTime dateTime = Convert.ToDateTime(strOrder[1], cultureInfo);
strOrder[1]
的值是多少?您已经在视频中显示了字符串,但是否检查strOrder[1]是否具有预期值?是否可以在此处添加调试打印?文件已读取,字符串值示例“2/5/2012”。strOrder[1]的值是多少?您已在视频中显示该字符串,但是否检查strOrder[1]是否具有预期值?可以在那里添加调试打印吗?文件已读取,字符串值示例“2/5/2012”。其他方法如何?其他方法如何?