StringnotrecognizedasvalidDateTime?我尝试将字符串转换为日期时间,但每次我都得到:StringnotrecognizedasavalidDateTime。代码是:stringformat="dd/MM/yyyy";obj.TransDate=DateTime.ParseExact(lbl_TransDate.Text.Split('/')[0]+"/"+lbl_TransDate.Text.Split('/')[1]+"/"+lbl_TransDate.Text.Split('/')[2],格式,CultureInfo.InvariantCulture);当我调试我尝试解析的日期时,它是:12/4/2012所需的格式是字符串格式=“dd/M/yyyy”;我不明白一件事,为什么要拆分连接字符串,因为你会得到同样的东西?如果输入是12/4/2012,用'/'拆分后,你会得到12,4,2012,然后将它们连接起来得到“12/4/2012”。为什么这个?另外,如果你真的需要拆分,你可以将它存储到一个数组中,这样你就不需要将它拆分3次:varsplits=lbl_TransDate.Text.Split('/');DateTime.ParseExact(splits[0]+"/"+splits[1]+"/"+splits[2],...);如果您不信任输入,拆分数组可能不是Length=3,等等,您可以使用DateTime.TryParseExact编辑您可以对多种格式使用重载,因此如果输入可能是12/4/2012或12/04/2012你可以同时使用varformats=new[]{"dd/M/yyyy","dd/MM/yyyy"};vardate=DateTime.ParseExact("12/4/2012",格式,System.Globalization.CultureInfo.InvariantCulture,System.Globalization.DateTimeStyles.AssumeLocal);我同意其他答案,请参阅看起来您已经做了很多工作来解决应该是一个简单的问题。我会使用文化信息中的英国日期格式。varconvertedDay=DateTime.Parse("12/04/2010",newCultureInfo("en-GB").DateTimeFormat);当您只有一个数字时,您指定MM。使用PadLeft函数,仅使用一个M,或使用零填充。下面的代码演示了这一点,根据需要填充dd和MMstringformat="dd/MM/yyyy";字符串mydate="12/4/2012";DateTimet=DateTime.ParseExact(mydate.Split('/')[0].PadLeft(2,'0')+"/"+mydate.Split('/')[1].PadLeft(2,'0')+"/"+mydate.Split('/')[2],格式,CultureInfo.InvariantCulture);输出是:12/04/201200:00:00确保在你的webconfig中添加以下内容...见http://sharpertutorials.com/list-of-culture-codes/以上是C#学习教程:字符串未被识别为有效的日期时间?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
