【发布时间】:2015-10-28 13:01:30
【问题描述】:
我收到此错误:输入字符串的格式不正确,正在尝试将值转换为日期时间或该值的一部分转换为 int。但仅限于以下值:“2025 年 8 月 5 日”。
这是我的第一个代码:
string MyFormat = "MM/dd/yyyy";
string MyDate = string.Empty;
MyDate = MyObject.ValueX.ToString();
string MyFormatedDate = Convert.toDateTime(MyDate).ToString(MyFormat);
我虽然是日期时间等的格式,但后来我意识到不是因为我改变了我的代码,试图用这样的部分创建一个 DateTime 对象:
string[] Dates= MyDate.Split('/');
String myYear= Dates[2].ToString().Trim();
String myMonth= Dates[0].ToString().Trim();
String myDay= Dates[1].ToString().Trim();
int YearInt= Convert.ToInt32(myYear);
int MontInt= Convert.ToInt32(myMonth);
int DayInt= Convert.ToInt32(myDay);
DateTime newDate = new DateTime(anioInt, mesInt,diaInt);
我得到了同样的错误:输入字符串的格式不正确在这一行:
int YearInt = Convert.toInt32(myYear);
当 myYear = "2025", if a do this: Convert.toInt32("2025") 我没有问题,但是为什么会出现这个异常???
这仅在这些日期时出现。
这是 MyObject 使用这个类:
[DataContract]
public class LabelField
{
..
[DataMember(Name = "ValueX")]
public string ValueX{ get; set; }
..
}
【问题讨论】:
-
使用调试器,你会更快地发现问题。您确定 ValueX 的价值吗?记住一个字符串不需要 ToString() (它只是有点没用)
-
你好史蒂夫,谢谢,但我正在使用调试器 ValueX 是一个字符串,值为“8/5/2025”,问题是当我尝试使用变量进行转换时没有工作,但是在调试器中我尝试使用它工作的变量的值进行转换。这是没有意义的。像这样。转换.ToInt32(myYear);和 Convert.ToInt32("2025");
-
您是否 100% 确定 ValueX 是您认为的字符串?
标签: c# string datetime input casting