[Excel] UNIX時刻を日本標準時(JST)に変換する計算式

Microsoft 365

UNIX時刻(UNIX時間)を、協定世界時(UTC)や日本標準時(JST)に変換するExcelの計算式を解説します。

スポンサーリンク

UNIX時刻(UNIX時間)とは?

UNIX時刻またはUNIX時間は、コンピューターシステム上の時刻表現の一種です。

協定世界時(UTC)の「1970年1月1日午前0時0分0秒」から経過した秒数で表されます。
たとえば「1970年1月1日午前0時0分1秒」をUNIX時刻で表すと「1」になります。

 

計算式:UNIX時刻 → 協定世界時(UTC)

セル”A1”にUNIX時刻がある場合、協定世界時(UTC)に変換するExcelの計算式は次のようになります。

=(A1/86400)+DATEVALUE("1970/01/01")

シリアル値に変換したUNIX時刻に、シリアル値に変換した起算日を加算しています。

UNIX時刻は、86400秒(1日を秒で表した値)で割るとシリアル値になります。
起算日は、DATEVALUE関数でシリアル値に変換します。

 

計算式:UNIX時刻 → 日本標準時(JST)

さきほどの協定世界時(UTC)に時差の9時間を加算すると日本標準時(JST)になります。
Excelの計算式は次のようになります。

=(A1/86400)+DATEVALUE("1970/01/01")+TIME(9,0,0)

 

補足:Excelの日付システム

Excelの日付システムには二つあります。

Microsoft365など今のExcelは、WindowsやMacに関係なく1900 date システム(1900/01/01から起算)に統一されていますが、古いMacのExcelでは、1904 date システム(1904/01/01から起算)が採用されていました。

Excel の日付システム
1900および1904の日付システムと、必要に応じて既定値を変更する方法について説明します。…続きを読む >

 

実際は、「DATEVALUE("1970/01/01")」のように関数にしておくと、Excelがシステムに合ったシリアル値に上手く変換してくれるので、ユーザーが気にする必要はありません。

ですが、"1970/01/01"の1900 date システムでのシリアル値「25569」を、直接ハードコーディングしてしまうと、システムによっては異なる結果になるので注意が必要です。

 

最後になりましたが、UNIX時刻を日付に変換してくれるサイトを載せておきます。
今回の計算式のテストにも使用しました。

 

最後までご覧いただきありがとうございます。
では、また。