VBScript: 日付をyyyy-mm-dd形式の文字列に変換する

VBScriptで日付を取得すると「yyyy/mm/dd」形式になります。 これを文字列として「yyyy-mm-dd」や「yyyymmdd」形式に変換する 方法を説明します。

方法はシンプルで、Replace関数を使って 「yyyy/mm/dd」のスラッシュ(/)を置き換えたい任意の文字に変換するだけです。

次のサンプルコードでは、 Data関数で今日の日付を取得し、 スラッシュ(/)をハイフン(-)や空文字("")に置換して形式を変換しています。
変数s1は「yyyy-mm-dd」形式、s2は「yyyymmdd」形式です。

d = Date()

WScript.Echo d    ' 2021/06/07

' yyyy-mm-dd
s1 = Replace(d, "/", "-")
WScript.Echo s1   ' 2021-06-07

' yyyymmdd
s2 = Replace(d, "/", "")
WScript.Echo s2   ' 20210607

明日や昨日の日付を「yyyy-mm-dd」形式の文字列に変換する

今日の日付ではなく、 明日や昨日の日付を「yyyy-m-dd」形式に変換する場合は、 先にDateAdd 関数で日付を取得した後に Replace関数で変換します。

次のサンプルコードでは、明日の日付を「yyyy-mm-dd」形式の文字列に 変換しています。

' 明日の日付を取得
d1 = DateAdd("d", 1, Date())

WScript.Echo d1  ' 2021/06/08

' 置換
s1 = Replace(d1, "/", "-")

WScript.Echo s1  ' 2021-06-08

昨日の日付を取得したい場合は、DateAdd 関数の第2引数を「-1」に変更してください。

' 昨日の日付を取得
d1 = DateAdd("d", -1, Date())
VBScript入門