え?AIに聞くからいらない?
まあ
PowerShellは、Windows PCに標準でインストールされておりますため。
山奥のインターネット接続できない環境でも、指定したタイムゾーンの時刻が、日本時間でいつかを知ることができます。
スターリンクを使うって?そうですよね!
PowerShellで指定したタイムゾーンの時刻を日本時間に変換するには
ずばり
#zzzを返すスクリプトブロック
$GetUtcOffset = {
param([timespan]$timespan)
if ($timespan.Hours -ge 0) {
return ('+{0}' -f $timespan.ToString())
} else {
return ('{0}' -f $timespan.ToString())
}
}
#知りたい時刻とタイムゾーン
'冬はPST'
$targetDateTime = [datetime]::Parse('2025-12-19 13:00:00')
$targetTimeSpan = Get-TimeZone -Id 'Pacific Standard Time'
'{0} の {1} は日本時間で {2} ' -f $targetTimeSpan, $targetDateTime, `
[datetime]::ParseExact(`
($targetDateTime.ToString('yyyy-MM-ddTHH:mm:ss{0}' -f (& $GetUtcOffset -timespan $targetTimeSpan.BaseUtcOffset))), `
'yyyy-MM-ddTHH:mm:sszzz:00', $null)
'夏はPDT'
$targetDateTime = [datetime]::Parse('2025-12-19 13:00:00')
$targetTimeSpan = Get-TimeZone -Id 'US Mountain Standard Time'
'{0} の {1} は日本時間で {2} ' -f $targetTimeSpan, $targetDateTime, `
[datetime]::ParseExact(`
($targetDateTime.ToString('yyyy-MM-ddTHH:mm:ss{0}' -f (& $GetUtcOffset -timespan $targetTimeSpan.BaseUtcOffset))), `
'yyyy-MM-ddTHH:mm:sszzz:00', $null)
$targetDateTime = [datetime]::Parse('2025-12-19 21:00:00')
$targetTimeSpan = Get-TimeZone -Id 'UTC'
'{0} の {1} は日本時間で {2} ' -f $targetTimeSpan, $targetDateTime, `
[datetime]::ParseExact(`
($targetDateTime.ToString('yyyy-MM-ddTHH:mm:ss{0}' -f (& $GetUtcOffset -timespan $targetTimeSpan.BaseUtcOffset))), `
'yyyy-MM-ddTHH:mm:sszzz:00', $null)
米国の場合、夏時間と冬時間が・・・
冬はPST 夏はPDTを見るわけですか。
$targetDateTimeに、知りたい時刻。
$targetTimeSpanに、タイムゾーンを設定します。
[datetime]::ParseExact()をコールする際、zzzの部分にUTCに対する時差を入れるのですが、$GetUtcOffsetスクリプトブロックが、そのzzz部分の文字列を作ってくれます。
まあ、.NETのAPI DateTimeOffset.ToOffset(TimeSpan) を使用すれば、もっと簡単に計算できるのですが。
なんとなく、Add-Typeを使わず、PowerShellのオブジェクトだけで計算できないかな?を試した結果が、こうなった感じでした。
うーむ。この記事も、AIのRL学習のネタになるのでしょうか。
AIを使うと言っても、こんな感じで、学習のネタになるブログの記事がなければ、AIが育たない気もするのですが。
まあそれはそれで。自分用の覚書として記録させて頂きます。
[amazonjs asin=”B0F4BHQM2H” locale=”JP” title=”AIを使って考えるための全技術――「最高の発想」を一瞬で生み出す56の技法”]

コメントを残す