VB6的ActiveX组件中一个诡异的日期格式化显示的问题

环境: Windows  Server 2003

在语言与区域设置中已经将区域设置为美国,日期格式为“mm/dd/yyyy”,但是在VB6的Active X DLL中利用Format$(now,"Short Date")得到的日期格式总是“dd/mm/yyyy”,百思不得其解,使用ASP,用VB6做了一个简单的Exe程序,显示的格式化日期格式都是正确的,就是DLL不行。。。Google了一顿,没有找到直接答案,但是发现了几个Windows API,激发了灵感,其中2个是:

GetSystemDefaultLCID

GetUserDefaultLCID

获取系统和用户的默认LCID,调用这2个API后发现,系统的是1033,用户的是1027.在ASP页面设置Session.LCID=1027之后,果然,日期格式变成了dd/mm/yyyy,看来问题出在ActiveX dll里的Format函数使用了用户区域设置,而非系统区域设置,而在Windows的区域与语言设置里面设置的似乎只是系统级别的区域设置,那么怎么让用户的和系统的同步呢?

控制面板->区域和语言选项->高级选项卡->

“将所有设置应用于当前用户帐户和默认用户配置文件”,打上勾,再点“应用”就可以了。

问题是:怎么单独设置某个用户的区域设置呢?不知道,不过这也足够解决问题了。

posted on   零度的火  阅读(366)  评论(0编辑  收藏  举报

编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix

导航

< 2011年5月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
5 6 7 8 9 10 11
点击右上角即可分享
微信分享提示