所以我有一个字符串,它可能是不同格式的日期。我想创建一种方法,尝试每个方法直到成功,然后返回转换后的日期,或者如果它不匹配任何格式则抛出错误。我写了这个:
private string ConvertDate(string toConvert)
{
if (string.IsNullOrEmpty(toConvert)) { return ""; }
DateTime date;
bool success = DateTime.TryParseExact(toConvert,
"MMddyy",
new CultureInfo("en-US"),
DateTimeStyles.None,
out date);
if (!success)
{
success = DateTime.TryParseExact(toConvert,
"MMddyyyy",
new CultureInfo("en-US"),
DateTimeStyles.None,
out date);
}
if (!success)
{
success = DateTime.TryParseExact(toConvert,
"MM/dd/yy",
new CultureInfo("en-US"),
DateTimeStyles.None,
out date);
}
if (!success)
{
success = DateTime.TryParseExact(toConvert,
"MM/dd/yyyy",
new CultureInfo("en-US"),
DateTimeStyles.None,
out date);
}
if (!success) throw new Exception("Date formats are not recognized");
return date.ToString();
}
它有效,但我觉得写这一切很愚蠢,我认为必须有一种更简单的方法来一次检查许多不同的日期格式。有任何想法吗?