将日期格式从ddmmyyyy更改为yyyymmdd

时间:2013-05-23 06:11:57

标签: c# date

我的情况是,我可能会以mmddyyyy格式或yyyymmdd格式获得日期。现在我需要以yyyy-mm-dd格式转换任何收到的日期。 之前我只是以yyyymmdd的形式获取日期,所以我正在使用

Value = DateTime.ParseExact(dob, "yyyy-MM-dd",null)

获得了所需的结果。

现在我还需要检查日期的传入格式。 有没有一种简单的方法可以做到这一点,还是我需要放一个if else并手动检查所有内容?

2 个答案:

答案 0 :(得分:7)

您可以使用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
}

答案 1 :(得分:2)

您可以尝试使用第一种格式解析日期。如果解析不成功,那么您使用其他格式进行解析:

你应该这样做:

//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");