convert / time

UNIXタイムスタンプ変換

UNIXタイムスタンプ(秒・ミリ秒)をUTC・JST・ISO 8601形式の日時に変換します。日時からタイムスタンプへの逆変換にも対応しています。

ISO 8601 (UTC)
1970-01-01T00:00:00.000Z
UTC
1970-01-01 00:00:00
JST
1970-01-01 09:00:00
Unixミリ秒
0

使い方

01
  1. 「タイムスタンプ → 日時」タブでUnixタイムスタンプ(秒)を入力すると、UTC・JST・ISO 8601形式の日時が表示されます
  2. 「現在時刻」ボタンを押すと現在のUnixタイムスタンプを自動入力できます
  3. 「日時 → タイムスタンプ」タブでは日付・時刻・タイムゾーンを入力してUnixタイムスタンプに変換できます

実装コード

02

new Date(unix * 1000) でUnixタイムスタンプをDateオブジェクトに変換し、オフセット計算でタイムゾーンごとの日時文字列を生成します。外部ライブラリ不要で標準APIのみで実装しています。

export function fromUnix(unix: number): TimestampResult {
  const date = new Date(unix * 1000)
  return {
    unix,
    unixMs: unix * 1000,
    iso:    date.toISOString(),
    jst:    formatDateTime(date, 9 * 60 * 60 * 1000),
    utc:    formatDateTime(date, 0),
  }
}

// 日時 → Unixタイムスタンプ
export function toUnix(dateStr: string, timeStr: string, offsetHours: number): number {
  const [year, month, day]     = dateStr.split('-').map(Number)
  const [hour, minute, second] = timeStr.split(':').map(Number)
  const offsetMs = offsetHours * 60 * 60 * 1000
  return Math.floor((Date.UTC(year, month - 1, day, hour, minute, second) - offsetMs) / 1000)
}

よくある使用例・注意点

03
Unixタイムスタンプとは
1970年1月1日0時0分0秒(UTC)からの経過秒数。32ビット整数の場合2038年問題があります。
タイムゾーンの注意
同じUnixタイムスタンプでもJST(UTC+9)ではUTCより9時間進んだ日時として表示されます。
ミリ秒との違い
JavaScriptの Date.now() はミリ秒を返します。秒に変換するには1000で割ります。

関連ツール

04
タイムゾーン変換 — 準備中西暦・和暦変換年間通算日計算 — 準備中

ソースコード

05

このツールのソースコード(テストコードを含む)はGitHubで公開しています。MITライセンスで自由に利用・改変できます。

GitHub でコードを見る →