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

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

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

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


    理解的越多,需要记忆的就越少
  • 相关阅读:
    Hibernate---对象的三种状态
    grunt+bower依赖管理
    grunt 的安装和简单使用
    sqlserver dmv 动态管理视图
    ado.net 数据库连接池
    桥接模式
    .net MVP
    主定理(分治算法)
    图中环的判断
    选举协议paxos 协议 理解
  • 原文地址:https://www.cnblogs.com/Ricky81317/p/2058185.html
Copyright © 2011-2022 走看看