我有简单的一行代码
var startYearString = DateTime.Parse("03/21/2014").Year;
我希望这可以工作,但是会引发这样的错误
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:
我不知道出了什么问题?
最佳答案
如果您已经知道日期格式,则需要使用DateTime.ParseExact()
。
尝试这个:
var startYearString = DateTime.ParseExact("03/21/2014","MM/dd/yyyy",
CultureInfo.InvariantCulture).Year;
说明:
yyyy
-4位数字的年份MM
-以两位数表示的月份dd
-日期以两位数表示hh
-小时,两位数。mm
-分两位数字。ss
-两位数秒。fff
-毫秒tt
-上午或下午。有关更多信息,请参见此:DateTime custom formats
关于c# - 有效字符串的日期时间转换失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22401657/