MCPで接続 →

計算を入力してください

初期値はUTC+9(日本時間)です。UTCより遅れている地域はマイナスの値を入力してください。

公式

広告

結果

UNIX時間
1,749,913,200
1970年1月1日0時0分0秒(UTC)からの経過秒数
定義 POSIX時間(うるう秒なし)
エポック(基準時刻) 1970年1月1日0時0分0秒(UTC)

UNIX時間とは

UNIX時間(UNIXタイムスタンプ、POSIX時間とも呼ばれます)は、UNIXエポックである1970年1月1日0時0分0秒(UTC)からの経過秒数を表す数値です。ある瞬間を1つの整数で表現できる、言語や環境に依存しない普遍的な方式で、ログやデータベース、API、プログラミングなどコンピューターのあらゆる場面で利用されています。うるう秒は考慮されず、1日は必ず86,400秒として扱われます。

UNIXエポックの起点と前進する秒数を示すタイムライン
UNIX時間は、起点(エポック)1970-01-01 00:00:00 UTCからの経過秒数を数えます。

この計算機の使い方

まず、ふだん目にする時計の表示どおりに、日付(年・月・日)と時刻(時・分・秒)を入力します。次に「UTCとの時差」に、その地方時のタイムゾーンのずれを時間単位で指定します。たとえば日本は+9、インドは+5.5、米国の太平洋標準時(PST)は-8です。初期値は+9(日本時間)です。時・分・秒を空欄にした場合は0として計算されます。

計算式の解説

はじめに、Howard Hinnant氏による「days-from-civil」アルゴリズムを使って、日付をエポックからの日数に変換します。この方法なら、うるう年や1970年より前の日付も含め、あらゆるグレゴリオ暦の日付について正確に日数を数えられます。求めた日数に86,400を掛け、そこへ時・分・秒を足すと、地方時における1970年1月1日0時0分0秒からの経過秒数が得られます。最後にUTCとの時差(時間×3600)を差し引いて、結果をUTC基準に補正します。

$$\begin{gathered} t = 86400 \cdot D + 3600\,\text{Hour} + 60\,\text{Minute} + \text{Second} - 3600\,\text{UTC Offset} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} D &= \text{days from } 1970\text{-}01\text{-}01 \text{ to the chosen date} \\ \text{date} &= \left(\text{Year},\ \text{Month},\ \text{Day}\right) \end{aligned} \right. \end{gathered}$$

日付と時刻を日・時・分・秒とUTCオフセット調整に分解した図
この式は日・時・分・秒を合計し、UTCオフセットを差し引きます。

計算例

時差+9で2025年6月15日0時0分0秒の場合:エポックからの日数(daysSinceEpoch)は20254なので、地方時の秒数(localSeconds)は\(20254\times86400 = 1{,}749{,}945{,}600\)となります。ここから\(9\times3600 = 32{,}400\)を差し引くと、UNIX時間は1,749,913,200。これは2025年6月14日15時0分0秒(UTC)に相当します。

$$1749913200 = 20254 \times 86400 - 9 \times 3600$$

よくある質問

プラスの時差なのに、想定より小さい値になるのはなぜ? UTCより進んでいる地方時は、UTCで見るとより早い瞬間に対応します。そのため、同じ時計表示をUTCとして読んだ場合よりもUNIX値は小さくなります。

1970年より前の日付も計算できますか? はい。その場合は単純に負の値になります。たとえば1969年12月31日23時59分59秒(UTC)は\(-1\)です。

うるう秒は含まれますか? いいえ。1日を必ず86,400秒とする標準的なPOSIXの定義に従っています。

最終更新: