环境说明:WIDOWS2008,IIS6
故障描述:用Delphi作了一个Dll,放在C#编写的ASP.NET网下使用,但在DLL中总是无法正确的将'2011-10-14'转换为时间型数据,报:'2011-10-14' is not a valid date。新建一个EXE项目测试,StrtoDate函数是好没有问题的;使用外部EXE程序调试Dll,StrtoDate函数也没有问题;只要把这个Dll放到ASP.NET网站下来使用,StrtoDate函数就会出问题!!!
原因:该2008可能是由英文版安装了中文包后汉化过来,虽然在“区域和语言选项”中已经将日期格式改为了yyyy-M-d,但StrtoDate函数仍然无法正确的转换。在再也想不出修改什么系统设置能解决问题的时候,只得使用WINDOWS的终极必杀技:修改注册表!经查找,在注册表中仍然存在三处yyyy/M/d设置,全部改为yyyy-M-d,同时将日期分隔符改为:- ,这里要千万慎重,改出问题来作者概不负责,然后问题就解决了。