'将系统日期格式化为yyyy-mm-dd Private Declare Function GetSystemDefaultLCID Lib "kernel32" () 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 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 Const WM_WININICHANGE = &H1A Private Const HWND_BROADCAST = &HFFFF& Private Const LOCALE_SSHORTDATE = &H1F ' short date format string Private Const LOCALE_SDATE = &H1D Dim dwLCID As Long dwLCID = GetSystemDefaultLCID() If SetLocaleInfo(dwLCID, LOCALE_SDATE, "-") = False Then MsgBox "日期格式错,无法自动设置,请手工设置!", vbCritical + vbOKOnly End End If PostMessage HWND_BROADCAST, WM_WININICHANGE, 0, 0
dwLCID = GetSystemDefaultLCID() If SetLocaleInfo(dwLCID, LOCALE_SSHORTDATE, "yyyy-MM-dd") = False Then MsgBox "日期格式错,无法自动设置,请手工设置!", vbCritical + vbOKOnly End End If PostMessage HWND_BROADCAST, WM_WININICHANGE, 0, 0
Private Declare Function GetSystemDefaultLCID Lib "kernel32" () 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 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 Const WM_WININICHANGE = &H1A
Private Const HWND_BROADCAST = &HFFFF&
Private Const LOCALE_SSHORTDATE = &H1F ' short date format string
Private Const LOCALE_SDATE = &H1D
Dim dwLCID As Long dwLCID = GetSystemDefaultLCID()
If SetLocaleInfo(dwLCID, LOCALE_SDATE, "-") = False Then
MsgBox "日期格式错,无法自动设置,请手工设置!", vbCritical + vbOKOnly
End
End If
PostMessage HWND_BROADCAST, WM_WININICHANGE, 0, 0
dwLCID = GetSystemDefaultLCID()
If SetLocaleInfo(dwLCID, LOCALE_SSHORTDATE, "yyyy-MM-dd") = False Then
MsgBox "日期格式错,无法自动设置,请手工设置!", vbCritical + vbOKOnly
End
End If
PostMessage HWND_BROADCAST, WM_WININICHANGE, 0, 0
结果是:2007-01-01
我要想得到2007/01/01还要进行一次替换。
?replace("2007-01-05","-","/")
2007/01/05
我目的是想用一个现在的函数实现,谢谢。
如果使用默认的函数来转换的话很有可能会受到操作系统的影响而得不到期望的值
------------------
同意,因为vfp中有一个函数可以实现.padl(str,2,"0")可以实现,可是在vb中没有类似的函数.
还是自已写一个比较好,这样不会受到操作系统的影响.