首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB中有没有这样的函数,2007/1/5 转化成 2007/01/05,也就是说月份和日期都变成两位?解决办法

2012-01-05 
VB中有没有这样的函数,2007/1/5 转化成 2007/01/05,也就是说月份和日期都变成两位?VB中有没有这样的函数,2

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

[解决办法]
Format( "2007/1/5 ", "yyyy/mm/dd ")
[解决办法]
'将系统日期格式化为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
[解决办法]
日期“2007/01/01”中间的“/”与当前系统的设置有关,需要将“区域和语言选项”中“日期分隔符”改为“/”,这一项简体中文系统默认的是“-”。
[解决办法]
建议自己写一个函数来转换
如果使用默认的函数来转换的话很有可能会受到操作系统的影响而得不到期望的值
[解决办法]
建议自己写一个函数来转换
如果使用默认的函数来转换的话很有可能会受到操作系统的影响而得不到期望的值
------------------
同意,因为vfp中有一个函数可以实现.padl(str,2, "0 ")可以实现,可是在vb中没有类似的函数.
还是自已写一个比较好,这样不会受到操作系统的影响.

热点排行