为什么DateTime.TryParse在给出实际年份字符串时返回false?
题
在下面的代码中,我给函数一个sTransactionDate =" 1999"我试图将它转换为日期x / x / 1999。
DateTime dTransactionDate = new DateTime();
if(DateTime.TryParse(sTransactionDate, out dTransactionDate))
{ //Happy
}else
{ //Sad
}
如果字符串是“1999”,它总会以悲伤结束。有什么想法吗?
解决方案
尝试这样的事情(适当调整 CultureInfo
和 DateTimeStyles
):
DateTime.TryParseExact
("1999",
"yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dTransactionDate)
其他提示
怎么样......
DateTime dTransactionDate = new DateTime();
if (DateTime.TryParseExact(sTransactionDate, "yyyy",
CultureInfo.InvariantCulture, DateTimeStyles.None, out dTransactionDate))
{
// Happy
}
else
{
// Sad
}
......甚至只是......
DateTime dTransactionDate = new DateTime(int.Parse(sTransactionDate), 1, 1);
// Happy
" 1999"不是约会,而是一年 试试1/1/1999
还要在系统日历上验证您尝试解析的日期是否存在。就像你会发现“2/29/1949”一样。也将返回false,因为它从未存在于日历上。
不隶属于 StackOverflow