日付文字列に曜日が付加されている場合、TryParseは失敗します。
DateTime d;
string dateString = "Tuesday May 1, 2012 9:00 AM";
return DateTime.TryParse(dateString, out d); // returns false
これに対処して、日付であると安全に判断し、さらに日付に変換できるようにするための最良の方法は何ですか?
探す形式をTryParseExactに指示する必要があります。
DateTime d;
string dateString = "Tuesday May 1, 2012 9:00 AM";
return DateTime.TryParseExact(
dateString,
"dddd MMMM d, yyyy h:mm tt",
System.Globalization.CultureInfo.CurrentCulture,
System.Globalization.DateTimeStyles.None,
out d
);
これでうまくいくはずです:)
// Parse date and time with custom specifier.
string dateValue = "Tuesday May 1, 2012 9:00 AM";
string pattern = "dddd MMMM d, yyyy h:mm tt";
DateTime parsedDate;
if (DateTime.TryParseExact(dateValue, pattern, null,
DateTimeStyles.None, out parsedDate))
Console.WriteLine("Converted '{0}' to {1:d}.",
dateValue, parsedDate);
else
Console.WriteLine("Unable to convert '{0}' to a date and time.",
dateValue);