从字符串“31/03/2012”到“日期”类型的转换无效

时间:2011-10-30 14:29:59

标签: asp.net

  

可能重复:
  Conversion from string “31/03/2012” to type 'Date' is not valid

我尝试了Data.Parse和Convert.todatetime,但现在它说了 字符串未被识别为有效的DateTime。我还使用默认的“Invariant Language(Invariant Country)”将.NetGlobalozation和setUI Culture配置为“English(United States)(en-US)”但没有用。我错过了什么?堆栈跟踪如下..

  

[FormatException:String未被识别为有效的DateTime。]
  System.DateTimeParse.Parse(String s,DateTimeFormatInfo dtfi,   DateTimeStyles样式)+2845862 System.DateTime.Parse(String s)+25   ProwessWebApp.Finyr.SSCreate_Click(Object sender,EventArgs e)in   E:\ DevVB2008 \ ProwessWebApp \ ProwessWebApp \ ProwessWebApp \ Finyr.aspx.vb:130   System.Web.UI.WebControls.Button.OnClick(EventArgs e)+111
  System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串   eventArgument)+110
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串   eventArgument)+10
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler   sourceControl,String eventArgument)+13
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)   +175 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)   1565

你可以告诉我该怎么办? 开发..

2 个答案:

答案 0 :(得分:1)

31/03/2012不是有效的英语日期。 english-us使用"月/日/年"订购,而您的输入日期是"日/月/年"。

03/31/2012是您输入的正确顺序,或使用其他语言环境(法语......)。

答案 1 :(得分:0)

如果您确定日期始终与该格式完全相同,那么您可以改为使用ParseExact:

var date = DateTime.ParseExact(
               "31/03/2012",
               "dd/MM/yyyy",
               System.Globalization.CultureInfo.InvariantCulture);