日期:2014-05-17  浏览次数:20919 次

“从字符串向 datetime 转换时失败”,“ASP函数Now()”
  今天运行一个网站程序,本来好使的一个程序在本地就是运行错误,每次运行打开网站总是提示:“从字符串向 datetime 转换时失败”。经过检查数据库发现,数据库中的日期字段的字符串包含“上午”导致使用Datadiff转换的时候出现错误,经过仔细检查发现这个日期是通过asp中的new()函数获得的,在网上提出的解决方案为:

  原文地址为:http://www.webjx.com/asp/2009-07-12/14418.html

  新上的一台服务器出现了一个现象:ASP程序中,调用函数Now(),显示的时间总是形如“2009-07-12 上午 08:12:56 ”这样的,总显示“上午”和“下午”,解决过程及最终解决方法如下:

  这么显示,一般都是因为服务器就是如此设置的,先查看时间格式:直接双击任务栏中时间,在弹出的“时间和日期”中果然显示了上午下午这样的字样,那就进入下一步设置;
打开控制面板,选择“区域和语言选项”,在“区域选项”中选择自定义,选择“时间”标签,将时间格式设置为“H:mm:ss ”即24小时制时间,将下面的AM符号和PM符号后的值清空,单击“确定”保存设置;
  此时再打开“时间和日期”,时间中已经不显示上午和下午的字样了,进入下一步检验;
  重启IIS后,执行ASP函数Now(),结果让我很失望,还是显示了大大的“下午”两个字,那现在就不是这个问题了,应该就是没有使用系统区域设置的时间;
  强制ASP时间使用使用区域设置里面的时间格式,方法如下:打开注册表编辑器,进入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\,建立OLEAUT的项,在该项下建立名称为“VarConversionLocaleSetting”的DWORD值,数据设置为2,设置完成后退出注册表编辑器;
  重启IIS后,再次测试ASP函数Now(),现在已经成功的不再显示该死的“上午”“下午”字样了。