解析字符串到日期时出现奇怪的错误?

Ahm*_*mad 6 .net c# datetime windows-phone

当我尝试解析这样的日期时:

DateTime t1 = DateTime.ParseExact("August 11, 2013, 11:00:00 PM", "MMMM dd, yyyy, hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

它工作正常,但当我做这样的事情:

string s ="?August ?11, ?2013, ??11:00:00 PM";
DateTime t = DateTime.ParseExact(s, "MMMM dd, yyyy, hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

mscorlib.ni.dll中出现"System.FormatException"类型的异常,但未在用户代码中处理

I4V*_*I4V 11

因为你的字符串

string s = "?August ?11, ?2013, ??11:00:00 PM";
Run Code Online (Sandbox Code Playgroud)

在开头和结尾包含0x200e(8206)字符August.你可以轻松地看到它

var chars = s.ToCharArray();
Run Code Online (Sandbox Code Playgroud)

似乎是一个复制+粘贴问题

您可以通过以下方式删除这些字符:

var newstr = new string(s.Where(c => c <128).ToArray())
Run Code Online (Sandbox Code Playgroud)

  • @AhmedEmad`var newstr = new string(s1.Where(c => c <128).ToArray())` (2认同)