从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值

DateTime支持日期从1753年1月1日到9999年12月31日

DateTime2支持日期0001年01月01日到9999年12月31日

 

Convert.ToDateTime 方法 (String)

将日期和时间的指定字符串表示形式转换为等效的          日期和时间值。

如果value不是null,返回的值是调用的结果DateTime.Parse方法value使用中的格式设置信息DateTimeFormatInfo初始化为当前区域性的对象。value参数必须包含的表示形式的日期和时间以一种格式中所述DateTimeFormatInfo主题。如果 value 为 null,则此方法返回DateTime.MinValue

此方法尝试将分析value完全并避免引发FormatException它会完成缺少的月、 日和年信息与当前日期。如果value包含仅日期而没有时间,此方法采用的时间为午夜。所有前导、 内部或尾部中的空白字符value将被忽略。

如果您不想处理的异常,如果转换失败,则可以调用DateTime.TryParse方法相反。它将返回Boolean值,该值指示转换是成功还是失败。

DateTime.Parse 方法 (String)

将日期和时间的指定字符串表示转换成其等效的               DateTime

[csharp] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. public static DateTime Parse (  
  2.     string s  
  3. )  
异常类型条件

ArgumentNullException

s 为 空引用(在 Visual Basic 中为 Nothing)。

FormatException

s 中不包含有效的日期和时间的字符串表示。

备注
 
 

使用针对当前区域性初始化的 DateTimeFormatInfo 中的格式设置信息来分析字符串 s。

此方法尝试完全分析 s 并避免引发 FormatException。如有可能,它将忽略未被识别的数据,并用当前时间填充缺少的年月日信息。如果 s 只包含日期而没有时间,则此方法假定时间为午夜 12:00。s 中的所有前导、内部或尾随的空白字符均会被忽略。日期和时间可以用前导和尾随数字标记字符对 ('#', U+0023) 括起来,还可以尾随一个或多个 NULL 字符 (U+0000)。

s 参数中所包含的日期和时间必须以 DateTimeFormatInfo 主题中描述的格式之一来表示。

[csharp] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. class Program  
  2.     {  
  3.         static void Main(string[] args)  
  4.         {  
  5.             try  
  6.             {  
  7.                 string s = "";  
  8.                 DateTime dt = DateTime.Parse(s);  
  9.                 Console.WriteLine(dt);  
  10.             }  
  11.             catch (Exception er)  
  12.             {  
  13.                 string erMessage = er.Message;  
  14.                 Console.WriteLine(erMessage);  
  15.             }  
  16.         }  
  17.     }  



原文地址:https://www.cnblogs.com/ooip/p/6737346.html