sam*_*sam -1 .net c# datetime date
我的输入字符串格式如下:
string a = "201101..";
string b = "199008..";
string c = "20110202";
Run Code Online (Sandbox Code Playgroud)
如何将它们转换为日期格式yyyymmdd
?
我知道我可以在第3种类型上使用DateTime.TryParse().
这就是我所拥有的:
string tempdate = a;
DateTime actualdate;
char[] charsToTrim = { '.' };
tempdate = tempdate.TrimEnd(charsToTrim);
if (DateTime.TryParse(tempdate, out actualdate))
{
}
Run Code Online (Sandbox Code Playgroud)
你可以传递多种格式 DateTime.TryParseExact
List<string> strDates = new List<string>
{
"201101..",
"199008..",
"20110202",
};
string[] possibleFormats = new[] { "yyyyMM", "yyyydd", "yyyyMd" };
//single M and d to parse
//both single and double digit
//Month or Day
DateTime dt;
foreach(string str in strDates)
{
if (DateTime.TryParseExact(str.Trim('.'),
possibleFormats,
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dt))
{
Console.WriteLine(dt);
}
else
{
Console.WriteLine("Invalid date");
}
}
Run Code Online (Sandbox Code Playgroud)
以上会给你输出:
01/01/2011 12:00:00 AM
01/08/1990 12:00:00 AM
02/02/2011 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)