PowerShellで日付を取得・操作する方法|yyyyMMdd・加算・減算・月初・月末

Powershell Powershell
この記事は約4分で読めます。

PowerShellでは、Get-Date を利用して現在の日付や時刻を取得できます。

また、取得した日付を yyyyMMdd などの指定した形式に変換したり、1日前・1週間前・1ヶ月後などの日付を計算したりすることも可能です。

この記事では、PowerShellでの日付操作について、現在日時の取得から日付のフォーマット、加算・減算、月初・月末の取得、日付の比較までまとめて解説します。

広告

1.PowerShellで現在の日付・時刻を取得する

date や Get-date を利用することで現在の日付・時刻を取得できます。

PS C:\> date
2022年3月28日 10:05:59

PS C:\> get-date
2022年3月28日 10:06:09

2.PowerShellで日付を指定した形式に変換する

次に、日付を指定した形式に変換していきます。

2-1. yyyyMMdd形式

Get-Date -Format "yyyyMMdd"

・実行結果

20260901

2-2. yyyy/MM/dd形式

Get-Date -Format "yyyy/MM/dd"

・実行結果

2026/09/01

2-3. yyyy-MM-dd形式

Get-Date -Format "yyyy-MM-dd"

・実行結果

2026-09-01

2-4. yyyyMMddHHmmss形式

ログファイルなどでよく使う形式です。

Get-Date -Format "yyyyMMddHHmmss"

・実行結果

20260901153000

3.PowerShellで日付を加算・減算する

日付の加算・減算には AddDaysAddMonthsAddYears のメソッドを利用します。

3-1. 1日前の日付を取得

PS C:\> (Get-Date).AddDays(-1)

2026年8月31日 11:19:45

3-2. 1日後の日付を取得

PS C:\> (Get-Date).AddDays(1)

2026年9月2日 11:20:11

3-3. 7日前の日付をyyyyMMdd形式で取得

フォーマットと組み合わせることもできます。

PS C:\> (Get-Date).AddDays(-7).ToString("yyyyMMdd")
20260825

4.PowerShellで昨日・明日・1週間前の日付を取得する(まとめ)

取得したい日付のコマンドをまとめます。

取得したい日付コマンド
今日Get-Date
昨日(Get-Date).AddDays(-1)
明日(Get-Date).AddDays(1)
1週間前(Get-Date).AddDays(-7)
1週間後(Get-Date).AddDays(7)
1ヶ月前(Get-Date).AddMonths(-1)
1ヶ月後(Get-Date).AddMonths(1)
1年前(Get-Date).AddYears(-1)
1年後(Get-Date).AddYears(1)

5.PowerShellで月初・月末を取得する

月初や月末の日付を取得することもできます。

5-1. 月初

PS C:\> (Get-Date -Day 1)

2026年9月1日 11:28:49

5-2. 月末

PS C:\> (Get-Date -Day 1).AddMonths(1).AddDays(-1)

2026年9月30日 11:30:15

5-3. 先月の月初

PS C:\> (Get-Date -Day 1).AddMonths(-1)

2026年8月1日 11:30:47

5-4. 先月の月末

PS C:\> (Get-Date -Day 1).AddDays(-1)

2026年8月31日 11:31:16

以下の記事にもまとめていますので参考までです。

【Powershell】月初と月末を取得する方法
Powershellで月初と月末を取得してみました。Get-Date のメソッドを利用して取得できます。また、取得した情報をISO 8601形式(YYYY-MM-DDTHH:MM:SS+HH:MM)のタイムゾーンを含む形式に成形してみました。

6.PowerShellで日付を比較する

日付の情報も比較することができます。

例えば、以下のような形です。
ここでは「9月1日は9月10日よりも小さいか?(9月1日のほうが過去か?)」を確認しています。

PS C:\> $date1 = Get-Date "2026/09/01"
PS C:\> $date2 = Get-Date "2026/09/10"
PS C:\> $date1 -lt $date2
True

そのほかの演算子は以下が利用可能です。

-lt
-gt
-le
-ge
-eq
-ne

7.PowerShellの日付操作で注意すること

私も一度やってしまったことがあるのですが、日付を整数型のように「数字」として扱い、単なる減算のように処理してしまうと想定外の動作となることがあります。

yyyyMMdd形式に変換した値を、そのまま日付として計算しないように注意してください。

例えば、

$date = Get-Date -Format "yyyyMMdd"

とすると、$dateには以下のような値が入ります。

20260901

この値に対して、

$date - 7

とすると、「7日前の日付」を計算しているように見えますが、実際には日付としてではなく数値として計算されます。

「20260901」という数字から 7 を引くことになるので「2026万864」という数字になってしまいます。

間違った減算例

PS C:\> $date = Get-Date -Format "yyyyMMdd"
PS C:\> $date - 7
20260894

そのため、正しい日付計算にはAddDays()AddMonths()などのメソッドを利用します。

PS C:\> (Get-Date).AddDays(-7).ToString("yyyyMMdd")
20260825

この方法なら、カレンダー上の7日前の日付を正しく取得できます。