我有一个值为13/12 / 17,09:37:20 + 32的字符串我无法以日期时间格式转换它。始终出现错误,表示" String未被识别为有效的DateTime"。这是我的代码:
DateTime crtdDate = DateTime.ParseExact(l.CreateDate, "yy/MM/dd,hh:mm:ss tt", CultureInfo.InvariantCulture);
请有人帮助我。谢谢!
答案 0 :(得分:1)
tt
代表am
或pm
+32。如果您尝试解析一秒钟的hundreth,请尝试ff
。
var crtdDate = DateTime.ParseExact(l.CreateDate, "yy/MM/dd,hh:mm:ss+ff", CultureInfo.InvariantCulture);
答案 1 :(得分:0)
您的字符串必须与格式完全匹配:
l.CreateDate = "06/15/2008";
[http://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx][1]
"d" -> 6/15/2009 1:45:30 PM -> 6/15/2009 (en-US)
6/15/2009 1:45:30 PM -> 15/06/2009 (fr-FR)
6/15/2009 1:45:30 PM -> 2009/06/15 (ja-JP)
DateTime.ParseExact(l.CreateDate, "d", CultureInfo.InvariantCulture);
没有+32,这将解析:
DateTime.ParseExact("13/12/17,09:37:20", "yy/MM/dd,hh:mm:ss", CultureInfo.InvariantCulture);
使用有效的时区说明符,以下内容将起作用:
DateTime crtdDate = DateTime.ParseExact("13/12/17,09:37:20+00:00", "yy/MM/dd,hh:mm:ssK",
CultureInfo.InvariantCulture);