Home > Windows にまつわる e.t.c.

PST/PDT/UTCからJST変換表


太平洋標準時間(PST)/太平洋夏時間(PDT)/協定世界時間(UTC)からJST(日本時間)への変換表です。
# 個人的に変換が面倒なので書いたってのはナイショです

 

PST(11月第1日曜日14:00-3月第2日曜日) to JST(PST+17)
JST 0:00 以降(白色)は翌日

PST 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
JST 17 18 19 20 21 22 23 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

 

PDT(3月第2日曜日14:00-11月第1日曜日) to JST(PDT+16)
JST 0:00 以降(白色)は翌日

PDT 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
JST 16 17 18 19 20 21 22 23 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

 

UTC to JST(UTC+9)
JST 0:00 以降(白色)は翌日

UTC 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
JST 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0 1 2 3 4 5 6 7 8

 

 

JST to PST(11月第1日曜日14:00-3月第2日曜日)
PST 0:00 より前(黄色)は前日

JST 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
PST 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0 1 2 3 4 5 6

 

JST to PDT(3月第2日曜日14:00-11月第1日曜日)
PDT 0:00 より前(黄色)は前日

JST 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
PDT 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0 1 2 3 4 5 6 7

 

JST to UTC
UTC 0:00 より前(黄色)は前日

JST 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
UTC 15 16 17 18 19 20 21 22 23 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

 

 

PowerShell で求める

PowerShell で JST/PST の相互変換スクリプト書きましたので、ご入用の方はリポジトリ落としてください。

MuraAtVwnet/ConvJstPst

git@github.com:MuraAtVwnet/ConvJstPst.git
https://github.com/MuraAtVwnet/ConvJstPst

 

使い方

ConvJstPst.ps1 YYYY/MM/DD HH:MM:SS [ -ToJST | -ToPST ]

 

Clone するのが面倒な方は wget でも

wget https://raw.githubusercontent.com/MuraAtVwnet/ConvJstPst/master/ConvJstPst.ps1 -OutFile ~\ConvJstPst.ps1

 

~\ConvJstPst.ps1 で起動します

 

 

[ConvJstPst.ps1]

######################################################
# JST PST 変換
######################################################
Param([string]$YYYYMMDD, [string]$HHMMSS, [switch]$ToJST, [switch]$ToPST)

# タイムゾーン
$C_PST_ZoneID = "Pacific Standard Time"
$C_JST_ZoneID = "Tokyo Standard Time"

######################################################
# JST to PST
######################################################
function CalcJst2PstLocalTime([datetime]$DateTime){
    [TimeSpan]$Offset = ([System.TimeZoneInfo]::FindSystemTimeZoneById($C_JST_ZoneID)).GetUtcOffset($DateTime)
    [datetimeoffset]$Jst = New-Object DateTimeOffset( $DateTime, $Offset )

    $JstTimeZone = [System.TimeZoneInfo]::FindSystemTimeZoneById($C_JST_ZoneID)
    if( $JstTimeZone.IsInvalidTime( $Jst.DateTime)){
        echo "[ERROR] $DateTime (JST) はサマータイム開始時のため存在しない時刻です"
        exit
    }

    [datetimeoffset]$Pst = [System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId($Jst, $C_PST_ZoneID)

    $ReturnData = New-Object PSObject | Select-Object LocalTime, SummerTime
    $ReturnData.LocalTime = $Pst.DateTime

    $PstTimeZone = [System.TimeZoneInfo]::FindSystemTimeZoneById($C_PST_ZoneID)
    $ReturnData.SummerTime = $PstTimeZone.IsDaylightSavingTime($Pst.DateTime)

    return $ReturnData
}

######################################################
# PST to JST
######################################################
function CalcPst2JstLocalTime([datetime]$DateTime){
    [TimeSpan]$Offset = ([System.TimeZoneInfo]::FindSystemTimeZoneById($C_PST_ZoneID)).GetUtcOffset($DateTime)
    [datetimeoffset]$Pst = New-Object DateTimeOffset( $DateTime, $Offset )

    $PstTimeZone = [System.TimeZoneInfo]::FindSystemTimeZoneById($C_PST_ZoneID)
    if( $PstTimeZone.IsInvalidTime( $Pst.DateTime)){
        echo "[ERROR] $DateTime (PST) はサマータイム開始時のため存在しない時刻です"
        exit
    }

    [datetimeoffset]$Jst = [System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId($Pst, $C_JST_ZoneID)

    $ReturnData = New-Object PSObject | Select-Object LocalTime, SummerTime
    $ReturnData.LocalTime = $Jst.DateTime

    $JstTimeZone = [System.TimeZoneInfo]::FindSystemTimeZoneById($C_JST_ZoneID)
    $ReturnData.SummerTime = $JstTimeZone.IsDaylightSavingTime($Jst.DateTime)

    return $ReturnData

}

######################################################
# Main
######################################################

if(((-not $ToPST) -and (-not $ToJST)) -or`
    ($ToPST -and $ToJST) -or`
    (($YYYYMMDD -eq [string]$null) -and ($HHMMSS -eq [string]$null))){
    echo "Usage..."
    echo "    ConvJstPst.ps1 YYYY/MM/DD HH:MM:SS [ -ToJST | -ToPST ]"
    exit
}

try{
    [datetime]$DateTime = $YYYYMMDD + " " + $HHMMSS
}
catch{
    echo "[FAIL] 日時指定が正しくありません : $YYYYMMDD $HHMMSS "
    exit
}

if( $ToPST ){
    $LocalTime = CalcJst2PstLocalTime $DateTime
}
else{
    $LocalTime = CalcPst2JstLocalTime $DateTime
}

echo $LocalTime

 

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.