Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将日期格式从ddmmyyyy更改为yyyyddmm_C#_Date - Fatal编程技术网

C# 将日期格式从ddmmyyyy更改为yyyyddmm

C# 将日期格式从ddmmyyyy更改为yyyyddmm,c#,date,C#,Date,在这种情况下,我可能会获得mmddyyyy格式或yyyymmdd格式的日期。现在我需要将收到的任何日期转换为yyyy-mm-dd格式。 之前我只以yyyymmdd的形式获取日期,所以我使用 Value = DateTime.ParseExact(dob, "yyyy-MM-dd",null) 并且得到了要求的结果 现在我还需要检查日期的输入格式。 有没有一种简单的方法可以做到这一点,或者我是否需要输入if-else并手动检查所有内容?您可以尝试使用第一种格式解析日期。如果解析不成功,则使用其他

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

Value = DateTime.ParseExact(dob, "yyyy-MM-dd",null)
并且得到了要求的结果

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

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

你应该这样做:

//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");
您可以使用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
}

dob的价值是多少?字符串表示形式的格式必须与指定的格式完全匹配。您的意思是传入日期字符串在日期组件之间没有分隔符,并且您不知道传入日期采用哪种格式?这将有助于您在问题中添加每种格式的日期吗?你说的是yyyyMMdd,但似乎在解析yyyy-MM-dd…?我想你的意思是MM-MM是格式字符串中的分钟,问题的顺序是MMddyyyy。非常感谢你的帮助,回答这个问题也解决了我的问题。1++1比我的解决方案更优雅,不知道阵列版本: