为什么DateTime.TryParse在给出实际年份字符串时返回false?

Geo*_*Geo 3 .net c# datetime tryparse

在下面的代码中,我给函数一个sTransactionDate ="1999",我试图将它转换为日期x/x/1999.

DateTime dTransactionDate = new DateTime();
if(DateTime.TryParse(sTransactionDate, out dTransactionDate))
{ //Happy 
}else
{ //Sad 
}
Run Code Online (Sandbox Code Playgroud)

如果字符串是"1999",它总是会悲伤.有任何想法吗?

And*_*are 15

尝试这样的事情(调整CultureInfoDateTimeStyles适当地):

DateTime.TryParseExact
  ("1999",
   "yyyy",
   CultureInfo.InvariantCulture,
   DateTimeStyles.None,
   out dTransactionDate)
Run Code Online (Sandbox Code Playgroud)