将日期格式从ddmyyyy更改为yyyyddmm



我有一种情况,我可能会得到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
}

您可以尝试用第一种格式解析日期。如果parse does不成功,则使用另一种格式进行解析:

你应该这样做:

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

最新更新