string str = DateTime.Now.ToString("yyyyMMdd"); string[] format = {"yyyyMMdd"}; DateTime date; if (DateTime.TryParseExact(str, format, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out date)) { .... } else ....
实例:
string date="20210131"; DateTime res; string[] format = { "yyyyMMdd" }; string[] weeks = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; if (DateTime.TryParseExact(date, format, CultureInfo.CurrentCulture, DateTimeStyles.None, out res)) { int a = (int)(res.DayOfWeek); Console.WriteLine(weeks[a]); //判断星期几 Console.WriteLine(res.ToString("yyyy-MM-dd")); //输出转化后的日期 Console.ReadLine(); } else { throw new Exception("转化出错"); }
需要注意的是这里的format要和传进来的字符串的格式一致,
不一定要求是yyyyMMdd,还可以是yyyy-MM-dd或者yyyy/MM/dd,甚至可以加上hh:mm:ss。
只要传入的格式是一致的,都能转换成日期类型,然后进行格式转换。
这样可以实现各种日期格式之间的相互转换。
另外。如果给定的日期格式是标准的yyyy-MM-dd,要转换成其他类型,可以使用ToDateTime()。
public static string ConvertTime(string timeString) { DateTime time = Convert.ToDateTime(timeString); return time.ToString("yyyyMMddhhmmss"); }