スポンサーリンク

【PowerShell】DateTimeクラスによる日付・時刻の操作

記事内に広告が含まれています。

PowerShellで日付や時刻を操作する場合、主に.NETDateTimeクラスを利用します。

このクラスを活用することで、現在時刻の取得やフォーマットの変更、日時の計算が簡単に行えます。

基本的な使い方をまとめます。

スポンサーリンク

現在日時の取得

現在の日時を取得するには、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クラスを活用することで、日付や時刻に関するさまざまな操作が簡単に実現できます。スクリプトでの日時処理がより効率的に行えるようになります。

タイトルとURLをコピーしました