传奇报错is not a valid date and time:M2启动时间格式修复

来源: 作者: 点击:
这个弹窗意思是引擎读到一个认不出的日期时间字符串,老Delphi引擎(Hero、3K、部分GOM/GEE包)对系统区域格式和配置文件里的时间格式很敏感,单机启动M2Server或加载!Setup.txt时最容易炸。

一、先改系统日期时间格式(首选,90%情况直接好)
Win10/Win11:
右键任务栏时间 → 调整日期/时间 → 更改日期和时间格式
短日期改成:yyyy-M-d 或 yyyy-MM-dd
短时间改成:H:mm:ss
长时间改成:HH:mm:ss
示例:2026-11-04 09:30:00

Win7/控制面板路线:
控制面板 → 区域和语言 → 格式 → 其他设置 → 日期
短日期填 yyyy-M-d,时间填 H:mm:ss,应用确定。

时区锁 UTC+08:00 北京,开“自动同步时间”。改完注销一次或重启电脑,再起服务端。

注意:别用“2026年11月4日”这种中文格式,也别用“26/11/4”这种。

二、改服务端配置文件里的非法时间
进 Mir200\ 目录,记事本打开 !Setup.txt(没有感叹号就找 Setup.txt),搜这些行:
DayOfGuildFountain=
OpenServerTime=
StartDate=
EndDate=
ServerTime=
LastUpdateTime=

规则:
等号后面要么留空(DayOfGuildFountain=)
要么写标准格式 2026-11-04 09:30:00,禁止斜杠、禁止中文、禁止漏秒
如果报错弹窗里带了具体时间串(比如 2012-3-31 22:45:30 连在一起没空格),直接搜那个串删掉或补全空格

改完存盘,完全关掉所有网关和M2,重新从DBS开始起。

三、Zserver/网关类配置也顺手查
Zserver 或 Gateway 目录里如果有:
!ServerInfo.txt
ZServerConfig.ini
搜里面带日期的行,格式同样改 yyyy-MM-dd HH:mm:ss,单机架设用不上的时间行直接清空。

四、脚本和插件里的动态时间
Envir\Robot.txt、市场脚本、活动脚本里用到 DATE()、TIME()、AddDate 之类,确认传参是标准格式。
插件排查:Mir200\PlugList.txt 里临时注掉非核心插件,一个个起M2看是不是某个老插件自己拼了错误时间串。

五、数据库字段(SQL/SQLite版才用看)
用MySQL/SQLite的端,查角色表、系统配置表的 CreateTime、LastLogin 字段:
类型用 DATETIME 或 TEXT
值必须是 2026-11-04 09:30:00,别存 0000-00-00 或空串混进去
DBC版一般不动表结构,重点还是系统格式。

六、虚拟机/双系统注意
虚拟机时间不同步也会报这错。VMware 关掉 VMware Tools 自动同步时间,手动把虚机时间设成当前北京时间,再起服务。

七、操作顺序(照抄)
1. 系统短日期改 yyyy-M-d,时间改 H:mm:ss,同步北京时间
2. 关全部服务端进程
3. 清 !Setup.txt 里异常时间参数
4. 注掉可疑插件试启动
5. M2能进主界面就正常,再生成登录器进游戏

八、别踩的坑
服务端运行中发现时间不对,先关服再改系统时间,别边跑边改系统时钟,容易回档写脏数据。
改系统格式后不注销,引擎还读旧区域缓存。
列表文件、脚本里混用全角空格和半角竖线,解析时把时间串截断。
引擎和端不匹配(Hero端套GOM的M2)也会顺带报时间错,先确认引擎同源。

按上面改完,is not a valid date and time 基本都能消掉,本质就是“系统区域格式 + 配置文件时间串”两件事没对齐。