PowerShellでは、現在の日付や時刻を取得するために Get-Date
コマンドを使用します。Get-Date
を活用することで、システムの日時を取得したり、指定のフォーマットで出力したりすることが可能です。本記事では、Get-Date
コマンドの基本的な使い方から、応用例までを詳しく解説します。
目次
Get-Date コマンドの基本的な使い方
PowerShellで現在の日付と時刻を取得するには、Get-Date
コマンドをそのまま実行するだけです。
Get-Date
実行すると、以下のように現在の日時が表示されます。
Tuesday, March 3, 2025 19:00:00 PM
このように、システムの日時を簡単に取得することができます。
特定のフォーマットで日付と時刻を取得する
Get-Date
コマンドでは、フォーマットを指定することで出力をカスタマイズできます。
1. 年月日を取得
Get-Date -Format "yyyy/MM/dd"
出力例:
2025/03/03
2. 時刻のみを取得
Get-Date -Format "HH:mm:ss"
出力例:
19:00:00
3. 曜日を取得
Get-Date -Format "dddd"
出力例:
Tuesday
タイムゾーンを考慮した時刻の取得
システムのタイムゾーンを確認するには、以下のコマンドを実行します。
Get-TimeZone
出力例:
Id : Tokyo Standard Time
DisplayName : (UTC+09:00) Osaka, Sapporo, Tokyo
StandardName : Tokyo Standard Time
DaylightName : Tokyo Daylight Time
これを利用して、異なるタイムゾーンの時刻を取得することも可能です。
(Get-Date).ToUniversalTime()
過去や未来の日付を取得する
Get-Date
では、現在の日時から加減算して、特定の日時を取得できます。
1. 1日前の日付を取得
(Get-Date).AddDays(-1)
出力例:
Monday, March 2, 2025 19:00:00 PM
2. 1ヶ月後の日付を取得
(Get-Date).AddMonths(1)
出力例:
Thursday, April 3, 2025 19:00:00 PM
3. 1年後の日付を取得
(Get-Date).AddYears(1)
出力例:
Wednesday, March 3, 2026 19:00:00 PM
UTC時間を取得する
システムの時刻ではなく、UTC時間を取得したい場合は以下のコマンドを使用します。
(Get-Date).ToUniversalTime()
Get-Date を変数に格納する
日時を変数に格納し、あとで使用することもできます。
$now = Get-Date
Write-Output "現在の日時は: $now"
出力例:
現在の日時は: Tuesday, March 3, 2025 19:00:00 PM
スクリプト内での活用例
PowerShellスクリプト内で Get-Date
を活用すると、ログのタイムスタンプを自動的に記録したり、特定の期間の処理を実施することが可能です。
1. ログファイルにタイムスタンプを記録
$log = "C:\Logs\mylog.txt"
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
"[$timestamp] スクリプトが実行されました。" | Out-File -Append -FilePath $log
2. 指定した時間待機する
Start-Sleep -Seconds 10
$now = Get-Date
Write-Output "10秒後の時間: $now"
まとめ
Get-Date
コマンドは、PowerShellで日付と時刻を取得する基本的なコマンドですが、フォーマットの指定や日時の加減算、UTC変換など、多くの活用方法があります。本記事で紹介した使い方を活用し、日付を適切に管理するスクリプトを作成してみてください。