C#字符串转换为时间
public class DateConvert { public static bool ConvertToDate(string dateString, out DateTime dateValue) { if (DateTime.TryParse(dateString, out dateValue)) { return true; } return ConvertToDateExact(dateString, out dateValue); } private static bool ConvertToDateExact(string dateString, out DateTime dateValue) { DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo(); // 常规类型,可通过TryParse成功转换 //string[] formatstring = new string[] { "yyyyMMdd", "yyMMdd", "yyyy年MM月dd日", "yyyy/MM/dd", "yyyy-MM-dd", "yyyy.MM.dd", "yy/MM/dd", "yy-MM-dd", "yy.MM.dd" }; string[] formatstring = new string[] { "yyyyMMdd", "yyMMdd", "yyyy年MM月dd日" }; //TryParseExact(string s, string[] formats, IFormatProvider provider, DateTimeStyles style, out DateTime result) if (DateTime.TryParseExact(dateString, formatstring, dtFormat, DateTimeStyles.None, out dateValue)) { return true; } return false; } }
经测试,在中文64位win7系统中,2014年10月28日这种字符串,也可通过TryParse进行转换。
测试代码:
private void simpleButton4_Click(object sender, EventArgs e) { string[] testTime = new string[] { "95.06.08", "2000.01.19", "20141028", "2014/10/28", "2014/9/1", "2014-9-1", "2014-9-10", "2014-09-01", "2014年10月28日", "141028"}; DateTime dt; foreach (string s in testTime) { if (DateConvert.ConvertToDate(s, out dt)) { Console.WriteLine(dt.ToString()); } else { Console.WriteLine("failed" + s); } } }
输出结果:
浙公网安备 33010602011771号