私は新しい t VBScript です。日付を mm/dd/yyyy から mm/dd/yy にフォーマットしたいと考えています。FormatDateTime(Date(),2) を使用しましたが、うまくいきません。例えば:
日付が 2015 年 7 月 1 日の場合、上記の関数は 7/1/2015 を出力しますが、07/01/15 にしたいと考えています。
それを行う方法はありますか?いろいろ調べましたがわかりませんでした。
私は新しい t VBScript です。日付を mm/dd/yyyy から mm/dd/yy にフォーマットしたいと考えています。FormatDateTime(Date(),2) を使用しましたが、うまくいきません。例えば:
日付が 2015 年 7 月 1 日の場合、上記の関数は 7/1/2015 を出力しますが、07/01/15 にしたいと考えています。
それを行う方法はありますか?いろいろ調べましたがわかりませんでした。
この回答に基づいて(背景については「リンクされた」リンクをたどってください):
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
独自の関数を記述して、日付を希望どおりにフォーマットできます。
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
。