2016-10-04 67 views
1

我不明白为什么我的字符串值不断抛出一个异常,应该是一个有效的字符串。我在格式"30/09/2016 14:55:00"(称为myDate)的字符串日期和曾尝试以下让它成datetime格式:DateTime.parse字符串未被识别

DateTime.ParseExact(myDate, "dd/MM/yyyy HH:mm:ss", null); 
DateTime.ParseExact(myDate, "dd/MM/yyyy HH:mm:ss", CultureInfo.CurrentCulture); 
DateTime.Parse(myDate); 

我看不到的地方我已经错了,是不是我”错过了?

编辑:

的指明MyDate

enter image description here

电流值保持在解析被称为 enter image description here

例外 enter image description here

同样的情况下,也适用于所有其他版本ns将字符串解析为DateTime

+0

我也一直在寻找在此前的答案中,所有这些都指出上述没有成功 – Novastorm

+0

那么你会得到什么例外,它说什么?一切适用于我... –

+0

当我执行第二个它的作品。你说'myDate'是你的100%吗? –

回答

1

删除引号的问题是,你的字符串有额外的",然后当你分析它抛出一个异常。你的"30/09/2016 14:55:00"串实际上是\""30/09/2016 14:55:00\""

取出\"然后解析:

string myDate = "\"30/09/2016 14:55:00\""; 
var result = DateTime.ParseExact(myDate.Replace("\"",""), "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture); 

或者是因为它总是在字符串的两端可以使用.Trim方法

1

看起来您的字符串中有多余的不需要的双引号。

试试这个,看看它是否工作:

var date = DateTime.ParseExact(myDate.Trim('\"'), "dd/MM/yyyy HH:mm:ss", CultureInfo.CurrentCulture); 
1

您字符串包含额外的报价,你应该叫DateTime.Parse之前删除。你可以通过调用

myDate = myDate.Trim('"'); 
DateTime.ParseExact(myDate, "dd/MM/yyyy HH:mm:ss", null); 
+0

将'null'用作'IFormatProvider' _might_会很危险因为它意味着“使用CurrentCulture'设置”,所以OP的CurrentCulture可能不会使用'/'作为'DateSeparator'和/或':'作为'TimeSeparator',在这种情况下,你的代码会抛出'FormatException'。最好指定一个_proper_(也许'InvariantCulture')文化设置来防止这种情况。 –

相关问题