日期给出了美国服务器中的例外



我正在从javascript中获取一个日期字符串,然后将其转换为dateTime并将其保存到数据库。

但是在印度服务器中,我的代码正常工作。但是,当我将代码上传到基于我们的服务器时,它给出了例外。是否有任何通用方法可以使我的代码可运行到所有服务器。

我的代码就像以下

[WebMethod(EnableSession = true)]
public static bool submitDate( string date ) // format is dd-mm-yyyy 20-01-2011
 {
    DateTime DOBdate = DateTime.Now;
    double age = 0.0;
    if (DateTime.TryParse(date , out DOBdate))
    {
            age = (DateTime.Now - DOBdate).Days / 365;
    }
      dbcmd.Parameters.Add("@DateOfBirth", SqlDbType.DateTime).Value = Convert.ToDateTime(DOBdate); 
}

请帮助我。

显示的例外是SQLDATETIME溢出。必须是1/1/1753 12:00:00 AM到12/31/9999 11:59:59 PM。

您应该使用tryparseexact,我想服务器的默认日期格式不是dd-mm-yyyy。并且您应该处理解析功能的if:

public static bool submitDate( string date ) // format is dd-mm-yyyy 20-01-2011
{
    DateTime DOBdate = DateTime.Now;
    double age = 0.0;
    if (DateTime.TryParseExact(date , {"dd-MM-yyyy"}, 
                          null,
                          DateTimeStyles.None, 
                          out DOBdate))
    {
         age = (DateTime.Now - DOBdate).Days / 365;
    }
    else
    {
        // Handle this case!
    }
    dbcmd.Parameters.Add("@DateOfBirth", SqlDbType.DateTime).Value = Convert.ToDateTime(DOBdate); 
 }

顺便说一句,您的年龄功能并不是年龄的很好的迹象。年龄较大的人,就会越有缺陷。

最新更新