VB中有没有这样的函数,2007/1/5 转化成 2007/01/05,也就是说月份和日期都变成两位?
--------------
当然,可以写个函数实现这个功能,可是毕竟效率比较低。想问问是不是vb是有现成的函数呀。

解决方案 »

  1.   

    '将系统日期格式化为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
      

  2.   

    ?format("2007/01/01","yyyy/mm/dd")
    结果是:2007-01-01
    我要想得到2007/01/01还要进行一次替换。
    ?replace("2007-01-05","-","/")
    2007/01/05
    我目的是想用一个现在的函数实现,谢谢。
      

  3.   

    建议自己写一个函数来转换
    如果使用默认的函数来转换的话很有可能会受到操作系统的影响而得不到期望的值
    ------------------
    同意,因为vfp中有一个函数可以实现.padl(str,2,"0")可以实现,可是在vb中没有类似的函数.
    还是自已写一个比较好,这样不会受到操作系统的影响.