奇怪的错误:输入字符串的格式不正确

时间:2015-08-05 16:18:34

标签: c# string datetime input casting

我收到此错误:输入字符串格式不正确,尝试将值转换为datetime或将该值的一部分转换为int。但只能使用以下值:" 8/5/2025"。

这是我的第一个代码:

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

我虽然是日期时间等的格式,但后来我意识到这并不是因为我改变了我的代码,试图用这样的部分创建一个DateTime对象:

int YearInt = Convert.toInt32(myYear);

我收到同样的错误:输入字符串的格式不正确

[DataContract]
    public class LabelField
    {
       ..
        [DataMember(Name = "ValueX")]
        public string ValueX{ get; set; }
       ..
    }

当myYear =" 2025",如果这样做:Convert.toInt32(" 2025")我没有问题,但为什么我得到这个例外? ?

仅在这些日期出现。

这是MyObject使用这个类:

for i in range(len(l)):
    d[i]=0
    for it in l[i]:
        d[i] += ord(it)
print(d)

1 个答案:

答案 0 :(得分:0)

事实证明,我的ValueX有隐形字符,我在调试器中没有看到,所以我只使用 Regex.Replace ,它现在可以正常工作。

String myYear= Regex.Replace(Dates[2], @"[^\x20-\x7F]", "");
String myMonth= Regex.Replace(Dates[0], @"[^\x20-\x7F]", "");
String myDay= Regex.Replace(Dates[1], @"[^\x20-\x7F]", "");

在我查看变量的长度之前,我没有注意到。

我希望这个解决方案可以帮助一些人:)