比如现在是2005年10月28日但vb中怎么返回2005年10月28日的日期格式呢? 日期格式要么是"MM-DD-YYYY",或是"DD-MM-YYYY"或是"YYYY-MM-DD"或是其它我应该怎么把当前这个日期的日期格式返回给我定义的变量呢?
解决方案 »
- 新手,程序提示以下信息
- 怎么導入一个EXCEL表到ACCESS,请教大家了。谢谢
- vb实现 像excel中图形显示和数据调整的功能!
- 用qq聊天时,可以发送图片,表情是怎么实现的?在线等
- 求代码,跟动态数组有关的。
- 如何改变windows 自带的 HeaderControl 和 ScrollBar 的背景色
- 散分不成,继续散分~~~200!有兴趣的进来撒~
- 怎样不让用户改变窗口大小
- 图象缩放
- 救命问题:
- 请教:已知另一个程序窗体上的combo控件的句柄,此combo控件有3个选项,如何通过api函数设置为第二个选项?
- checkbox型treeview和listview共用实现TREEVIEW的多重选择问题
或变量=format(日期,"YYYYMMDD")
。
"DD-MM-YYYY"好?
'---------------------------------------
' 函数名称:GetDateFormat()
' 功 能:取得系统日期格式串
' 如 2004/07/16 ,返回 YYYY/MM/DD
' 作 者:阿勇 [email protected]
' 最后修改:2004-7-16
'---------------------------------------
'---------------------------------------------
Function GetDateFormat() As String
Dim tmpDate As Date, tmpCDate As String
Dim dateSep As String, dateYMD As Variant, i As Integer
tmpDate = Date '取得当前日期作为分析用初始日期
If Month(tmpDate) = Day(tmpDate) Then '日期中的日与月的值相同,不利于判断,取另一日期(加或减一个月)
tmpDate = DateAdd("m", IIf(Month(tmpDate) = 1, 1, -1), tmpDate)
End If
'当年份为两位时,年份与月或日的值相同,取另一年(不停加年份直到有效为止)
'如此处理后能识别如 07/07/07 (2007年7月7日)的特殊日期
i = 1
Do While CInt(Right(CStr(Year(tmpDate)), 2)) = Month(tmpDate) Or CInt(Right(CStr(Year(tmpDate)), 2)) = Day(tmpDate)
tmpDate = DateAdd("y", i, tmpDate)
i = i + 1
Loop
tmpCDate = tmpDate
'取得日期分隔符
For i = 1 To Len(tmpCDate)
dateSep = Mid(tmpCDate, i, 1)
If InStr("0123456789", dateSep) = 0 Then Exit For
Next
'分解日期后分析各段内容得到格式串
dateYMD = Split(tmpCDate, dateSep)
For i = 0 To 2
Select Case CInt(dateYMD(i))
Case Year(tmpDate), CInt(Right(CStr(Year(tmpDate)), 2))
GetDateFormat = GetDateFormat & dateSep & String(Len(dateYMD(i)), "Y")
Case Month(tmpDate)
GetDateFormat = GetDateFormat & dateSep & String(Len(dateYMD(i)), "M")
Case Day(tmpDate)
GetDateFormat = GetDateFormat & dateSep & String(Len(dateYMD(i)), "D")
End Select
Next
If Left(GetDateFormat, 1) = dateSep Then GetDateFormat = Mid(GetDateFormat, 2)
End Function
不过都不太合我的要求,最后自己写了上面的函数,不过未必适合你。楼主可以参考以前的讨论贴:
http://topic.csdn.net/TopicFiles/2004/07/16/13/3180911.xml
'Purpose: Change system shortdate format
'Example: Call mdlChangeSystemDateFormat("dd/MMM/yyyy")
'--------------------------------------------------------Public Const LOCALE_SSHORTDATE As Long = &H1F
Public Const LOCALE_USER_DEFAULT As Long = &H400Public 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
Public Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As LongPublic Function mdlChangeSystemDateFormat(strFormat As String) As Boolean Dim strShortDateFormat As String, strBuffer As String
Dim lBuffSize As Long, lRetVal As Long
lBuffSize = 256
strBuffer = String(lBuffSize, vbNullChar)
'Get current short date format
lRetVal = GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, strBuffer, lBuffSize)
If lRetVal > 0 Then
strShortDateFormat = Left(strBuffer, lRetVal - 1)
Else
Exit Function
End If
'If current short date format is different from your format, change it.
'Note: MMM should be used in capital for month,small m are for minutes
If UCase(strShortDateFormat) <> UCase(strFormat) Then
lRetVal = SetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SSHORTDATE, strFormat)
End If
If lRetVal > 0 Then mdlChangeSystemDateFormat = True
End Function
'--------------------------------------------
'---------------------------------------
' 函数名称:GetDateFormat()
' 功 能:取得系统日期格式串
' 如 2004/07/16 ,返回 YYYY/MM/DD
' 作 者:阿勇 [email protected]
' 最后修改:2005-10-28
'---------------------------------------
'---------------------------------------------
Function GetDateFormat() As String
Dim tmpDate As Date, dateSep As String
Dim dateYMD() As String, i As Integer
'用 1999 年 1 月 2 日作为分析日期
tmpDate = DateSerial(1999, 1, 2)
'取得日期分隔符
For i = 1 To Len(tmpDate)
dateSep = Mid(tmpDate, i, 1)
If InStr("0123456789", dateSep) = 0 Then Exit For
Next
'分解日期各段内容得到格式串
dateYMD = Split(tmpDate, dateSep)
For i = 0 To 2
Select Case CInt(dateYMD(i))
Case Year(tmpDate), CInt(Right(CStr(Year(tmpDate)), 2))
GetDateFormat = GetDateFormat & dateSep & String(Len(dateYMD(i)), "Y")
Case Month(tmpDate)
GetDateFormat = GetDateFormat & dateSep & String(Len(dateYMD(i)), "M")
Case Day(tmpDate)
GetDateFormat = GetDateFormat & dateSep & String(Len(dateYMD(i)), "D")
End Select
Next
If Left(GetDateFormat, 1) = dateSep Then GetDateFormat = Mid(GetDateFormat, 2)
End Function