查看: 65  |  回复: 0
  VB6 改变系统的日期格式
楼主
发表于 2024年10月22日 19:41

新建From1(窗体),新建Command1(按钮CommandButton),代码:

Private Const LOCALE_SSHORTDATE As Long = &H1F
Private Const LOCALE_USER_DEFAULT As Long = &H400
Private Declare Function GetLocaleInfo Lib "kernel32" _
        Alias "GetLocaleInfoA" (ByVal lLocale As Long, _
        ByVal lLocaleType As Long, ByVal sLCData As String, _
        ByVal lBufferLength As Long) As Long
Private Declare Function SetLocaleInfo Lib "kernel32" _
        Alias "SetLocaleInfoA" (ByVal Locale As Long, _
        ByVal LCType As Long, ByVal lpLCData As String) As Long

Private Sub Command1_Click()
    Dim shortDateFormat As String
    Dim lBuffSize As String
    Dim sBuffer As String
    Dim lRetGet As Long
    Dim lRetSet As Long
    lBuffSize = 256
    sBuffer = String$(lBuffSize, vbNullChar)
    'get the date information in buffer
    lRetGet = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, sBuffer, lBuffSize)
    If lRetGet > 0 Then
        shortDateFormat = Left$(sBuffer, lRetGet - 1)
        'this is the existing format of machine
    End If
    'to change the format if doesn't matches ur format
    'MM should be used in capital for monyhs,small m are for minutes
    If UCase(shortDateFormat) <> "DD/MM/YYYY" Then
        lRetSet = SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, "yyyy/MM/dd") '这里只能MM大写,其它小写否则要出错
        'on sucess lretset have value greater than 0
        If lRetSet <= 0 Then
            MsgBox "Date format not changed"
            Exit Sub
        End If
    End If
    MsgBox "Okay"
End Sub

运行得到Okay后,可以点击Windows的时间设置,同步一下时间就看到更新格式了。

您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2024 MaNongKu.com