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- 「タイムスタンプ → 日時」タブでUnixタイムスタンプ(秒)を入力すると、UTC・JST・ISO 8601形式の日時が表示されます
- 「現在時刻」ボタンを押すと現在のUnixタイムスタンプを自動入力できます
- 「日時 → タイムスタンプ」タブでは日付・時刻・タイムゾーンを入力してUnixタイムスタンプに変換できます
実装コード
02new 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)
}よくある使用例・注意点
03Unixタイムスタンプとは
1970年1月1日0時0分0秒(UTC)からの経過秒数。32ビット整数の場合2038年問題があります。
タイムゾーンの注意
同じUnixタイムスタンプでもJST(UTC+9)ではUTCより9時間進んだ日時として表示されます。
ミリ秒との違い
JavaScriptの Date.now() はミリ秒を返します。秒に変換するには1000で割ります。
関連ツール
04ソースコード
05このツールのソースコード(テストコードを含む)はGitHubで公開しています。MITライセンスで自由に利用・改変できます。
GitHub でコードを見る →