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

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

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

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


    理解的越多,需要记忆的就越少
  • 相关阅读:
    华强北三代悦虎1562A怎么样?
    改丝印的假华强北三代1562A,用芯良苦!
    华强北三代过软件检测的佳和1562A
    Unlua静态导出
    Unlua编程基础
    Android JNI调用
    手机屏幕参数
    UE4 stats性能埋点
    【JWT】JSON Web Token
    【算法】一致性哈希算法实现
  • 原文地址:https://www.cnblogs.com/Ricky81317/p/2058185.html
Copyright © 2011-2022 走看看