有效字符串的日期时间转换失败

Ath*_*hul 1 c# asp.net datetime

我有简单的一行代码

var startYearString = DateTime.Parse("03/21/2014").Year;
Run Code Online (Sandbox Code Playgroud)

我希望这可以工作,但它会抛出这样的错误

System.FormatException was unhandled by user code
HResult=-2146233033
Message=String was not recognized as a valid DateTime.
Source=mscorlib
StackTrace:
    at System.DateTime.Parse(String s)
    at ConnectBLL.usercontrols.users.UserProfile.Page_Load(Object sender, EventArgs e)
    at System.Web.UI.Control.LoadRecursive()
    at System.Web.UI.Control.LoadRecursive()
    at System.Web.UI.Control.LoadRecursive()
    at System.Web.UI.Control.LoadRecursive()
    at System.Web.UI.Control.LoadRecursive()
    at System.Web.UI.Control.LoadRecursive()
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException: 
Run Code Online (Sandbox Code Playgroud)

我不知道出了什么问题?

Sud*_*udi 7

DateTime.ParseExact()如果您已经知道日期格式,则需要使用.

试试这个:

 var startYearString = DateTime.ParseExact("03/21/2014","MM/dd/yyyy",
                                  CultureInfo.InvariantCulture).Year;
Run Code Online (Sandbox Code Playgroud)

说明:

yyyy- 的4位数字
MM - 两位数
dd - 日期两位数

hh - 两位数的小时数.
mm - 两位数分钟.
ss - 两位数.

fff - 毫秒
tt - 上午下午.

有关更多信息,请参阅此内容:DateTime自定义格式