以下のコードでは、関数に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」は日付ではなく、1999年1月1日を試してみる年です