• 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的区域与语言设置里面设置的似乎只是系统级别的区域设置,那么怎么让用户的和系统的同步呢?

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

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

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


    理解的越多,需要记忆的就越少
  • 相关阅读:
    构建之法阅读笔记06
    构建之法阅读笔记05
    第九周进度条
    团队开发之个人博客九
    团队开发之个人博客八(4月27)
    无人机第二波
    团队开发之个人博客七
    无人机学习第一波
    团队开发之个人博客六
    第八周进度条
  • 原文地址:https://www.cnblogs.com/Ricky81317/p/2058185.html
Copyright © 2020-2023  润新知