我有一种情况,我可能会得到mmddyyyy
格式或yyyymmdd
格式的日期。现在我需要将任何接收到的日期转换为yyyy-mm-dd
格式。早些时候我只在表格中获取日期,yyyymmdd
所以我使用
Value = DateTime.ParseExact(dob, "yyyy-MM-dd",null)
并得到了所需的结果。
现在我还需要检查日期的传入格式。有没有一种简单的方法可以做到这一点,还是我需要输入 if else 并手动检查所有内容?
您可以使用TryParseExact
允许您传递您想要支持的可能格式的集合的方法。
DateTime dateValue;
var formats = new[] { "MM-dd-yyyy", "yyyy-MM-dd" };
if (DateTime.TryParseExact(dob, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue))
{
// do for valid date
}
else
{
// do for invalid date
}
您可以尝试使用第一种格式解析日期。如果解析不成功,则使用其他格式解析:
你应该这样做:
//example date
string dateString= "09301986";
//output date
DateTime finalDate;
if (!DateTime.TryParseExact(dateString, "ddMMyyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out finalDate))
{
DateTime.TryParseExact(dateString, "yyyyMMdd", CultureInfo.InvariantCulture,
DateTimeStyles.None, out finalDate);
}
string finaldate = finalDate.ToString("yyyy-MM-dd");