请问各位,如何在VB6更改操作系统的时间格式和日期格式为指定格式?
如要更改操作系统的日期格式为:yyyy-MM-dd,更改操作系统的时间格式为:HH:mm:ss
非常感谢。

解决方案 »

  1.   

    方法一:手工更改
    时间格式设置
    Shell "rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,3"
    日期格式设置
    Shell "rundll32.exe shell32.dll,Control_RunDLL intl.cpl,,4"方法二:VB使用Register 的API或Vb中引用Register type library修改注册表
    HKEY_USERS\.DEFAULT\Control Panel\International\sShortDate
    HKEY_USERS\.DEFAULT\Control Panel\International\sTimeFormat
      

  2.   

    一楼给的不就是在VB六中用的吗,楼主仔细看看吧。====================
    免费的学习交流网站,欢迎大家访问!
    http://www.j2soft.cn/
    http://j2soft.008.net/
      

  3.   

    Private Const WM_SETTINGCHANGE = &H1A
    Private Const HWND_BROADCAST = &HFFFF&
    Private Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Boolean
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
    Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As LongPrivate Sub setdateformat()
        Dim dwLCID As Long, i As Long
        Dim lpLCData As String * 255, cchData
        cchData = Len(lpLCData)
        dwLCID = GetSystemDefaultLCID()
        i = SetLocaleInfo(dwLCID, LOCALE_SSHORTDATE, "yyyy-MM-dd") '设置短日期格式
        PostMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0
        i = SetLocaleInfo(dwLCID, 32, "yyyy-MM-dd") '设置长日期格式
        PostMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0
        i = SetLocaleInfo(dwLCID, LOCALE_STIMEFORMAT, "HH:mm:ss") '设置时间格式
        PostMessage HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0
    End SubPrivate Sub Form_Load()
        Call setdateformat
    End Sub
      

  4.   

    呵呵,楼主看看一楼说的,日期格式和时间格式是保存在注册表中的HKEY_USERS\.DEFAULT\Control Panel\International\sShortDate
    HKEY_USERS\.DEFAULT\Control Panel\International\sTimeFormat楼主可以打开注册表中的上述位置看看就明白了,然后用vb读写注册表就好了。
      

  5.   

    //搂上的我试过了。只有设置长日期格式是对的。短日期格式和时间格式没有变化。呵呵:) 怎么试的?你的vb设置了强制变量声明没有?你的程序中下面这些常数声明了没有:
    Private Const LOCALE_SLONGDATE = &H20        '  long date format string
    Private Const LOCALE_SSHORTDATE = &H1F        '  short date format string
    Private Const LOCALE_STIMEFORMAT = &H1003      '  time format string
      

  6.   

    在VFP里只要用SET DATE TO YMD语句就可以,VB的太麻烦了