传奇单机启动报“不是一个有效的日期和时间”错误解决方法

来源: 作者: 点击:
架设单机版传奇时,服务端或客户端启动过程中弹出“这不是一个有效的日期和时间”提示,通常由系统区域格式设置异常、配置文件中存在非法时间字符串、或数据库字段解析失败引起。该问题与本地操作系统环境强相关,需从系统设置和数据文件两方面处理。

一、修改Windows区域格式为中文(简体)
传奇早期引擎依赖系统默认短日期格式解析时间戳,若系统区域设为英文、日文或其他非标准格式,会导致内部时间转换失败。操作步骤:
打开“控制面板” → “区域”;
在“格式”选项卡中,选择“中文(简体,中国)”;
点击“其他设置”,进入“日期”标签页;
确认短日期格式为“yyyy/M/d”或“yyyy-MM-dd”,避免使用带字母的格式(如MM/dd/yyyy);
重启电脑使设置生效。

二、检查MirWorld.DB或IDDB.MDB中的时间字段
部分版本在数据库角色表(如Account、Player)中包含创建时间字段。若该字段被写入非法值(如空值、文本“0000-00-00”或超出范围的日期),服务端读取时会报错。解决方法:
使用Access打开IDDB.MDB(或对应数据库工具打开MirWorld.DB);
查看Account表中RegDate、LastLogin等时间列;
将非法值替换为有效日期(如2020/1/1);
若字段允许为空,可清空内容但保留字段类型为“日期/时间”。

三、清理日志与缓存文件
服务端Log目录下的日志文件可能包含损坏的时间记录,导致重启时解析失败。删除以下文件后重新启动:
LogLoginSrv.log
LogDBServer.log
LogGameServer.log
客户端目录下的GameWnd.dat、UserCmd.ini(部分版本缓存时间戳)

四、验证配置文件是否存在时间字符串
检查服务端配置文件(如!Setup.txt、GameConfig.ini)是否手动添加了时间相关参数。例如:
StartTime=2024-13-01

此类非法日期(13月)会触发错误。删除或修正为合法日期格式。

五、以兼容模式运行服务端程序
右键点击DBServer.exe、LoginSrv.exe等主程序,选择“属性” → “兼容性”:
勾选“以兼容模式运行”,选择Windows 7或Windows XP(Service Pack 3);
勾选“以简化的颜色模式运行”;
应用后重启服务端。

六、重装VC++运行库
缺失或损坏的Visual C++ Redistributable组件可能导致时间函数调用异常。下载并安装最新版Microsoft Visual C++ 2015–2022 Redistributable(x86),重启后再试。

完成上述操作后,先启动DBServer,观察是否仍有报错。若问题消失,则依次启动其余服务端组件。绝大多数“无效日期和时间”错误可通过调整系统区域格式和清理数据库非法值解决。