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())