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:092.PowerShellで日付を指定した形式に変換する
次に、日付を指定した形式に変換していきます。
2-1. yyyyMMdd形式
Get-Date -Format "yyyyMMdd"・実行結果
202609012-2. yyyy/MM/dd形式
Get-Date -Format "yyyy/MM/dd"・実行結果
2026/09/012-3. yyyy-MM-dd形式
Get-Date -Format "yyyy-MM-dd"・実行結果
2026-09-012-4. yyyyMMddHHmmss形式
ログファイルなどでよく使う形式です。
Get-Date -Format "yyyyMMddHHmmss"・実行結果
202609011530003.PowerShellで日付を加算・減算する
日付の加算・減算には AddDays、AddMonths、AddYears のメソッドを利用します。
3-1. 1日前の日付を取得
PS C:\> (Get-Date).AddDays(-1)
2026年8月31日 11:19:453-2. 1日後の日付を取得
PS C:\> (Get-Date).AddDays(1)
2026年9月2日 11:20:113-3. 7日前の日付をyyyyMMdd形式で取得
フォーマットと組み合わせることもできます。
PS C:\> (Get-Date).AddDays(-7).ToString("yyyyMMdd")
202608254.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:495-2. 月末
PS C:\> (Get-Date -Day 1).AddMonths(1).AddDays(-1)
2026年9月30日 11:30:155-3. 先月の月初
PS C:\> (Get-Date -Day 1).AddMonths(-1)
2026年8月1日 11:30:475-4. 先月の月末
PS C:\> (Get-Date -Day 1).AddDays(-1)
2026年8月31日 11:31:16以下の記事にもまとめていますので参考までです。

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
-ne7.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日前の日付を正しく取得できます。

