Powershell

[PowerShell]Get-Dateで○日前の日付を取得してFormatする

Powershell

PowerShellで日付を処理する際は[Get-Date]コマンドレットを利用します。○日前の日付取得の方法とFormatによる出力フォーマットの指定方法は簡単に見つかるのですが、その2つを組み合わせた方法について紹介します。後半ではそれぞれの詳細について説明します。

○日前の日付を取得してFormatで出力フォーマットを指定する

組み合わせた方法は14行目になります。ToStringを利用した後にFormatをしてます。

# 現在日時を取得する
Get-Date
2019年12月31日 10:24:18

# 30日前のに日時を取得する
(Get-date).AddDays(-30)
2019年12月1日 10:24:18

# 現在日時をフォーマットを指定して取得する
Get-Date -Format "yyyy/MM/dd"
2019/12/31

# 30日前のに日時をフォーマットを指定して取得する
(Get-date).AddDays(-30).ToString("yyyy/MM/dd")
2019/12/01

○日前/○日後の日付を取得する

AddDaysを利用します。○日前にするにはマイナスの値にします。

# 30日後の日時を取得する
(Get-date).AddDays(30)
2020年1月30日 10:34:22

# 30日前の日時を取得する
(Get-date).AddDays(-30)
2019年12月1日 10:34:22

日以外の時間や月でも同様に日付処理ができます。

メソッド説明
AddDays現在日時に指定した日数を加算
AddHours現在日時に指定した時間を加算
AddMilliseconds現在日時に指定したミリ秒を加算
AddMonths現在日時に指定した月数を加算
AddSeconds現在日時に指定した秒を加算
AddYears現在日時に指定した年数を加算

Formatで出力フォーマットを指定する

”-Format” オプションで指定できる主な出力フォーマットは以下になります。

書式 取得する情報
yyyy(またはYYYY) 年(西暦4桁)
yy(またはYY) 年(西暦下2桁)
MM 月(01~12)
dd 日(01~31)
HH 時(00~23)
hh 時(01~12)
mm 分(00~59)
ss 秒(00~59)

また、短縮されたフォーマットも利用できます。

Get-Date -Format G # 2019/12/31 10:47:58
Get-Date -Format M # 12月31日
Get-Date -Format O # 2019-12-31T10:47:58.3975663+09:00
Get-Date -Format R # Tue, 31 Dec 2019 10:47:58 GMT
Get-Date -Format s # 2019-12-31T10:47:58
Get-Date -Format t # 10:47
Get-Date -Format T # 10:47:58
Get-Date -Format u # 2019-12-31 10:47:58Z
Get-Date -Format U # 2019年12月31日 1:47:58
Get-Date -Format Y # 2019年12月

以上です。

コメント