PowerShellで日付や時刻を操作する場合、主に.NET
のDateTimeクラスを利用します。
このクラスを活用することで、現在時刻の取得やフォーマットの変更、日時の計算が簡単に行えます。
基本的な使い方をまとめます。
現在日時の取得
現在の日時を取得するには、Get-Date
コマンドレットを使用します。
また、[datetime]::Now
でも同じ結果を得られます。
# Get-Date を使用
$currentDate = Get-Date
Write-Output "現在の日時: $currentDate"
# [datetime]::Now を使用
$currentDateAlt = [datetime]::Now
Write-Output "現在の日時 (別方法): $currentDateAlt"
出力例
現在の日時: 2024/12/14 15:30:00
現在の日時 (別方法): 2024/12/14 15:30:00
日時のフォーマット
日時を特定の形式で表示したい場合、-Format
パラメータを使用します。
# 年月日のみ
Write-Output (Get-Date -Format "yyyy/MM/dd")
# 時分秒のみ
Write-Output (Get-Date -Format "HH:mm:ss")
# カスタムフォーマット
Write-Output (Get-Date -Format "yyyy年MM月dd日 HH時mm分ss秒")
出力例
2024/12/14
15:30:00
2024年12月14日 15時30分00秒
日時の計算
日時に対する加算や減算は、.AddDays()
や.AddHours()
などのメソッドを使います。
# 現在日時を取得
$currentDate = Get-Date
# 3日後
$futureDate = $currentDate.AddDays(3).ToString("yyyy/MM/dd HH:mm:ss")
Write-Output "3日後: $futureDate"
# 2時間前
$pastTime = $currentDate.AddHours(-2).ToString("yyyy/MM/dd HH:mm:ss")
Write-Output "2時間前: $pastTime"
# 1か月後
$nextMonth = $currentDate.AddMonths(1).ToString("yyyy/MM/dd HH:mm:ss")
Write-Output "1か月後: $nextMonth"
出力例
3日後: 2024/12/17 15:30:00
2時間前: 2024/12/14 13:30:00
1か月後: 2024/01/14 15:30:00
日時の比較
日時の大小比較は、-lt
(より小さい)、-gt
(より大きい)、-eq
(等しい)などの演算子を使用します。
# 現在時刻
$current = Get-Date
# 比較対象
$comparisonDate = Get-Date "2024/12/15"
# 比較
if ($current -lt $comparisonDate) {
Write-Output "現在の日時は比較対象日時より前です。"
} else {
Write-Output "現在の日時は比較対象日時と同じか後です。"
}
特定の日時を作成
特定の日時を作成するには、[datetime]
型を明示的に指定します。
# 年月日を指定して作成
$specificDate = [datetime]"2024-12-25"
Write-Output "指定日時: $specificDate"
# 時間も指定
$specificDateTime = [datetime]"2024-12-25 18:00:00"
Write-Output "指定日時と時間: $specificDateTime"
タイムゾーンの扱い
PowerShellでは、UTC(協定世界時)やローカル時間の変換も容易に行えます。
# UTC現在時刻
$utcNow = [datetime]::UtcNow
Write-Output "UTC現在時刻: $utcNow"
# UTCをローカル時刻に変換
$localTime = $utcNow.ToLocalTime()
Write-Output "ローカル時刻: $localTime"
日付や時刻を文字列に変換
日時を文字列に変換するには、ToString()
メソッドを使用します。
# シンプルな文字列形式
$dateString = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")
Write-Output "文字列形式: $dateString"
まとめ
PowerShellのDateTimeクラスを活用することで、日付や時刻に関するさまざまな操作が簡単に実現できます。スクリプトでの日時処理がより効率的に行えるようになります。