PowerShellで日時をUTC(Coordinated Universal Time)に変換する †ローカル時刻から協定世界時(UTC)を取得する方法を以下に記します。 動作確認環境 †
関連記事 †
DateTime.ToUniversalTimeメソッドで変換 †Get-Dateコマンドレット により現在日時の DateTime オブジェクトを取得し、ToUniversalTimeメソッドにより、UTCの時刻を取得しています。 PS C:\> Get-Date ; (Get-Date).ToUniversalTime() 2022年11月22日 20:21:30 2022年11月22日 11:21:30 PS C:\> (Get-Date("2022/11/22 09:00:00")).ToUniversalTime().ToString("yyyy/MM/dd HH:mm:ss") 2022/11/22 00:00:00 出力フォーマット指定 †また、以下のように出力フォーマットを指定することなどできます。 PS C:\> Get-Date -Format "yyyy/MM/dd HH:mm K" 2022/11/22 20:38 +09:00 PS C:\> (Get-Date).ToString("yyyy/MM/dd HH:mm K") 2022/11/22 20:38 +09:00 PS C:\> (Get-Date).ToUniversalTime().ToString("yyyy/MM/dd HH:mm K") 2022/11/22 11:39 Z オブジェクト内の値確認 †ローカルのタイムゾーンが日本(JST-9)で、ToUniversalTimeメソッドによりKindがUtcになっているのが確認できます。 PS C:\> Get-TimeZone | Format-Table Id DisplayName StandardName DaylightName BaseUtcOffset SupportsDaylightSavingTime -- ----------- ------------ ------------ ------------- -------------------------- Tokyo Standard Time (UTC+09:00) 大阪、札幌、東京 東京 (標準時) 東京 (夏時間) 09:00:00 False PS C:\> Get-Date | Format-Table DisplayHint Date Day DayOfWeek DayOfYear Hour Kind Millisecond Minute Month ----------- ---- --- --------- --------- ---- ---- ----------- ------ ----- DateTime 2022/11/22 0:00:00 22 Tuesday 326 20 Local 642 32 11 PS C:\> (Get-Date).ToUniversalTime() | Format-Table Date Day DayOfWeek DayOfYear Hour Kind Millisecond Minute Month Second ---- --- --------- --------- ---- ---- ----------- ------ ----- ------ 2022/11/22 0:00:00 22 Tuesday 326 11 Utc 309 32 11 33 以上、PowerShellでUTC日時を求める方法でした。 |