我是新的 VBScript。我想将我的日期从 mm/dd/yyyy 格式化为 mm/dd/yy。我使用了 FormatDateTime(Date(),2) 但它对我不起作用。例如:
如果日期是 2015 年 7 月 1 日,上述函数输出 7/1/2015 但我希望它是 07/01/15。
任何想法如何做到这一点?我已经研究了很多,但我无法弄清楚。
我是新的 VBScript。我想将我的日期从 mm/dd/yyyy 格式化为 mm/dd/yy。我使用了 FormatDateTime(Date(),2) 但它对我不起作用。例如:
如果日期是 2015 年 7 月 1 日,上述函数输出 7/1/2015 但我希望它是 07/01/15。
任何想法如何做到这一点?我已经研究了很多,但我无法弄清楚。
您可以编写自己的函数来完全按照您的意愿格式化日期。
Function MyDateFormat(TheDate)
dim m, d, y
If Not IsDate(TheDate) Then
MyDateFormat = TheDate '- if input isn't a date, don't do anything
Else
m = Right(100 + Month(TheDate),2) '- pad month with a zero if needed
d = Right(100 + Day(TheDate),2) '- ditto for the day
y = Right(Year(TheDate),2)
MyDateFormat = m & "/" & d & "/" & y
End If
End Function
请注意,上面的输出是一个字符串,而不是日期,但同样适用于FormatDateTime
.
基于此答案(按照背景的“链接”链接):
Option Explicit
Class cFormat
Private m_oSB
Private Sub Class_Initialize()
Set m_oSB = CreateObject("System.Text.StringBuilder")
End Sub ' Class_Initialize
Public Function formatOne(sFmt, vElm)
m_oSB.AppendFormat sFmt, vElm
formatOne = m_oSB.ToString()
m_oSB.Length = 0
End Function ' formatOne
Public Function formatArray(sFmt, aElms)
m_oSB.AppendFormat_4 sFmt, (aElms)
formatArray = m_oSB.ToString()
m_oSB.Length = 0
End Function ' formatArray
End Class ' cFormat
Dim oFmt : Set oFmt = New cFormat
WScript.Echo oFmt.FormatOne("Today: {0:MM\/dd\/yy}", #7/1/2015#)
输出:
cscript 32272088.vbs
Today: 07/01/15