/// <summary> /// Convert cell value to DateTime /// </summary> /// <param name="dataRow"></param> /// <param name="columnName">we will use dataRow[0] instead of empty columnName</param> /// <param name="defaultVal">the value should return if convert is failed or your data row value is DBNull</param> /// <returns></returns> public static DateTime ToDateTime(this DataRow dataRow, string columnName, DateTimeDefaultReturn defaultDtVal = DateTimeDefaultReturn.Now) { if (dataRow == null) { throw new ArgumentNullException("dataRow"); } DateTime dtNow = DateTime.Now; if (defaultDtVal == DateTimeDefaultReturn.Min) { dtNow = DateTime.MinValue; } if (defaultDtVal == DateTimeDefaultReturn.Max) { dtNow = DateTime.MaxValue; } string result = string.Empty; if (!string.IsNullOrEmpty(columnName)) { result = GlobalExt.ObjectToString(dataRow[columnName]); } else { result = GlobalExt.ObjectToString(dataRow[0]); } if (!string.IsNullOrEmpty(result)) { DateTime.TryParse(result, out dtNow); return(dtNow); } return(DateTime.Now); }
/// <summary> /// Convert cell value to DateTime string /// </summary> /// <param name="dataRow"></param> /// <param name="columnName">we will use dataRow[0] instead of empty columnName</param> /// <param name="defaultVal">the value should return if convert is failed or your data row value is DBNull</param> /// <returns></returns> public static string ToDateTimeString(this DataRow dataRow, string columnName, DateTimeDefaultReturn defaultDtVal = DateTimeDefaultReturn.Now, string format = "yyyy-MM-dd HH:mm:ss") { if (dataRow == null) { throw new ArgumentNullException("dataRow"); } DateTime dtNow = DateTime.Now; try { if (!string.IsNullOrEmpty(columnName)) { dtNow = Convert.ToDateTime(dataRow[columnName]); } else { dtNow = Convert.ToDateTime(dataRow[0]); } } catch (Exception) { switch (defaultDtVal) { case DateTimeDefaultReturn.Min: dtNow = DateTime.MinValue; break; case DateTimeDefaultReturn.Max: dtNow = DateTime.MaxValue; break; default: dtNow = DateTime.Now; break; } } return(dtNow.ToString(format)); }