VB6取得系统日期格式错误

最近碰上一个状况,原本系统采用VB6做成COM+组件来处理业务逻辑
​当中无可避免的会需要使用到系统日期,最终输出的格式应该要是【yyyy-MM-dd】的形式。


问题就在于转换函数不清楚为何,无法正确转换。
无法正确转换的语法,是直接透过系统日期传递给Format处理

Format(date$,”YYYY/MM/DD”)


这样的语法在客户端转出来居然会是【2016-05-19】;而不是预想中的【2016/05/19】

借由同是拼了命的通灵问GOOGLE大神,最终查到一篇文章可能有关系
(传送门:VB6的ActiveX组件中一个诡异的日期格式化显示的问题)

实际上去变更了系统环境的设定,结果最终也是无效的
本来已经放弃治疗了,没想到公司同仁有着绝大的恒心与毅力(心脏)
再次通灵成功,查到要去修改注册注册表,将日期分隔符号从原本的值,变更为我们要的斜线
然后就搞定了

这边我没有跟他拿到他查到的数据来源,只知道解法是改注册表
但自己查了一下,似乎就是这一篇文章(传送门:​如何在 Windows 和 Windows NT 中设定的简短日期格式)内的东西
还有一篇参考数据(传送门:Command line tools to completely change region/input language for default user and welcome screen)

补充同事说明:除了DEFAULT要改之外,他也将系统其他人的身份注册注册表也一起改了
至于那一招才对症,已经不想再用正式机来测试所以不清楚。但关键点就是那个sDate的注册表