本文へスキップ

タイムスタンプコンバーター

タイムスタンプコンバーターは、Unixタイムスタンプと日付/時刻形式の間で双方向変換を行うオンラインツールです。Unixタイムスタンプを人間が読める日付に変換したり、日付をUnixタイムスタンプに変換したりできます。

🕐 現在時刻

日時:2025-11-11 13:56:29
Unixタイムスタンプ:1762869389

🔄 変換モード

📝 Unixタイムスタンプ入力

✨ 変換結果

Unixタイムスタンプ:-
日時:-

Unixタイムスタンプは1970年1月1日00:00:00 UTCから経過した秒を表します。システム間の日時データ交換に広く使用されています。

機能

  • 双方向変換: タイムスタンプ ↔ 日付/時刻の間で変換
  • リアルタイム現在時刻: 現在時刻とUnixタイムスタンプを表示
  • 自動検出: 秒とミリ秒形式を自動的に検出
  • ワンクリックコピー: タイムスタンプまたは日付をクリップボードにコピー
  • 現在時刻を使用: 現在時刻を素早く使用するボタン

Unixタイムスタンプとは?

Unixタイムスタンプ(またはエポック時刻)は、1970年1月1日00:00:00 UTCからの経過秒数を表します。これはコンピュータシステムで日付/時刻を表現する標準的な方法です。

主な特徴

  1. 普遍的な標準: タイムゾーンやロケールに依存しない
  2. 簡単な計算: 時間差の計算が容易
  3. データベースフレンドリー: 保存とクエリに効率的
  4. プログラミングの利便性: すべての主要なプログラミング言語でサポート

タイムスタンプ: 1640995200
日付: 2022-01-01 00:00:00 UTC

タイムスタンプ形式

秒(10桁)

標準的なUnixタイムスタンプ形式で、秒を表します:

1640995200  →  2022-01-01 00:00:00 UTC

ミリ秒(13桁)

JavaScriptや一部のAPIで使用され、ミリ秒を表します:

1640995200000  →  2022-01-01 00:00:00 UTC

当ツールは両方の形式を自動的に検出して変換します。

主要な歴史的タイムスタンプ

イベントタイムスタンプ日付
Unixエポック01970-01-01 00:00:00 UTC
Y2K9466848002000-01-01 00:00:00 UTC
2010年代開始12623040002010-01-01 00:00:00 UTC
2020年代開始15778368002020-01-01 00:00:00 UTC
2030年代開始18934560002030-01-01 00:00:00 UTC
2038年問題21474836472038-01-19 03:14:07 UTC

使用例

1. APIレスポンスの処理

// APIはタイムスタンプを返す
const apiResponse = {
created_at: 1640995200,
updated_at: 1641081600
};

// 日付に変換
const createdDate = new Date(apiResponse.created_at * 1000);
console.log(createdDate.toISOString());
// 2022-01-01T00:00:00.000Z

2. データベースクエリ

-- 特定の期間のデータを検索
SELECT * FROM orders
WHERE created_at BETWEEN 1640995200 AND 1641081600;

-- タイムスタンプを日付に変換
SELECT
id,
to_timestamp(created_at) as created_date
FROM orders;

3. ログ解析

import time
from datetime import datetime

# ログのタイムスタンプを解析
log_timestamp = 1640995200

# 読みやすい日付に変換
log_date = datetime.fromtimestamp(log_timestamp)
print(f"ログ時刻: {log_date}")
# ログ時刻: 2022-01-01 00:00:00

4. キャッシュと有効期限

// 有効期限付きキャッシュを設定
const cacheData = {
value: 'some data',
expires: Math.floor(Date.now() / 1000) + 3600 // 今から1時間後
};

// キャッシュが期限切れかどうかを確認
const isExpired = (cacheData.expires < Math.floor(Date.now() / 1000));

プログラミング例

JavaScript

// 現在のタイムスタンプ(秒)
const timestamp = Math.floor(Date.now() / 1000);
console.log(timestamp); // 1640995200

// 現在のタイムスタンプ(ミリ秒)
const timestampMs = Date.now();
console.log(timestampMs); // 1640995200000

// タイムスタンプから日付へ
const date = new Date(timestamp * 1000);
console.log(date.toISOString()); // 2022-01-01T00:00:00.000Z

// 日付からタイムスタンプへ
const dateObj = new Date('2022-01-01T00:00:00Z');
const ts = Math.floor(dateObj.getTime() / 1000);
console.log(ts); // 1640995200

// フォーマットされた出力
const formatted = date.toLocaleString('ja-JP', {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
hour12: false
});
console.log(formatted); // 2022/01/01 00:00:00

Python

import time
from datetime import datetime

# 現在のタイムスタンプ
timestamp = int(time.time())
print(timestamp) # 1640995200

# タイムスタンプから日付へ
dt = datetime.fromtimestamp(timestamp)
print(dt) # 2022-01-01 00:00:00

# 日付からタイムスタンプへ
date_obj = datetime(2022, 1, 1, 0, 0, 0)
ts = int(date_obj.timestamp())
print(ts) # 1640995200

# フォーマットされた出力
formatted = dt.strftime('%Y-%m-%d %H:%M:%S')
print(formatted) # 2022-01-01 00:00:00

# ISO 8601形式
iso_format = dt.isoformat()
print(iso_format) # 2022-01-01T00:00:00

PHP

// 現在のタイムスタンプ
$timestamp = time();
echo $timestamp; // 1640995200

// タイムスタンプから日付へ
$date = date('Y-m-d H:i:s', $timestamp);
echo $date; // 2022-01-01 00:00:00

// 日付からタイムスタンプへ
$dateStr = '2022-01-01 00:00:00';
$ts = strtotime($dateStr);
echo $ts; // 1640995200

// DateTimeオブジェクト
$dt = new DateTime('@' . $timestamp);
$dt->setTimezone(new DateTimeZone('UTC'));
echo $dt->format('Y-m-d H:i:s'); // 2022-01-01 00:00:00

Java

import java.time.*;

public class TimestampExample {
public static void main(String[] args) {
// 現在のタイムスタンプ
long timestamp = Instant.now().getEpochSecond();
System.out.println(timestamp); // 1640995200

// タイムスタンプから日付へ
Instant instant = Instant.ofEpochSecond(timestamp);
ZonedDateTime zdt = instant.atZone(ZoneId.of("UTC"));
System.out.println(zdt); // 2022-01-01T00:00:00Z

// 日付からタイムスタンプへ
ZonedDateTime dateTime = ZonedDateTime.of(
2022, 1, 1, 0, 0, 0, 0, ZoneId.of("UTC")
);
long ts = dateTime.toEpochSecond();
System.out.println(ts); // 1640995200

// フォーマットされた出力
String formatted = zdt.format(
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
);
System.out.println(formatted); // 2022-01-01 00:00:00
}
}

SQL

-- PostgreSQL
SELECT extract(epoch from now())::integer as timestamp;
SELECT to_timestamp(1640995200);

-- MySQL
SELECT UNIX_TIMESTAMP() as timestamp;
SELECT FROM_UNIXTIME(1640995200);

-- SQL Server
SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE()) as timestamp;
SELECT DATEADD(s, 1640995200, '1970-01-01 00:00:00');

タイムゾーンの考慮事項

UTCとローカル時刻

Unixタイムスタンプは常にUTC(協定世界時)です。ユーザーに表示する際は、ローカルタイムゾーンに変換します:

// タイムスタンプ(常にUTC)
const timestamp = 1640995200;

// ローカルタイムゾーンに変換
const date = new Date(timestamp * 1000);
const localString = date.toLocaleString();
console.log(localString); // ユーザーのローカルタイムゾーンで表示

// タイムゾーンを明示的に指定
const utcString = date.toLocaleString('ja-JP', { timeZone: 'UTC' });
const nyString = date.toLocaleString('ja-JP', { timeZone: 'America/New_York' });
const tokyoString = date.toLocaleString('ja-JP', { timeZone: 'Asia/Tokyo' });

DST(夏時間)

Unixタイムスタンプは、UTCベースであるためDSTの影響を受けません。DSTはローカル時刻の表示にのみ影響します:

// 同じタイムスタンプ
const timestamp = 1640995200;

// DSTによって表示が異なる
const winterDate = new Date(timestamp * 1000);
const summerTimestamp = 1656633600; // 2022-07-01
const summerDate = new Date(summerTimestamp * 1000);

// DSTがある地域では、ローカル時刻のオフセットが異なる
console.log(winterDate.toLocaleString()); // 例:EST
console.log(summerDate.toLocaleString()); // 例:EDT

2038年問題

2038年問題(Y2038またはUnix Y2Kとも呼ばれる)は、2038年1月19日03:14:07 UTCに32ビット符号付き整数がオーバーフローする問題です。

問題

32ビット符号付き整数の最大値: 2,147,483,647
対応する日時: 2038-01-19 03:14:07 UTC
オーバーフロー後: 負の値になるか1901年にリセット

解決策

  1. 64ビット整数: ほとんどの現代的なシステムは64ビット整数を使用
  2. 言語サポート: プログラミング言語の最新バージョンはこれを自動的に処理
  3. データベースの更新: 64ビットタイムスタンプをサポートするシステムにアップグレード
// JavaScriptは64ビット浮動小数点数を使用するため、2038年問題なし
const year2038 = new Date('2038-01-19T03:14:07Z');
console.log(year2038.getTime() / 1000); // 2147483647

const year2040 = new Date('2040-01-01T00:00:00Z');
console.log(year2040.getTime() / 1000); // 問題なく動作

ベストプラクティス

推奨事項

  1. 常にUTCで保存: タイムスタンプをUTCで保存し、表示時のみローカル時刻に変換
  2. 一貫した形式を使用: システム全体で秒またはミリ秒のいずれかを一貫して使用
  3. 検証: タイムスタンプの範囲を検証して無効な日付を防ぐ
  4. 64ビット整数: 将来対応のために64ビット整数を使用

非推奨事項

  1. 文字列として保存しない: タイムスタンプを整数として保存する方が計算に効率的
  2. タイムゾーンを忘れない: タイムゾーン変換を常に意識する
  3. ローカル時刻を使用しない: タイムゾーン情報なしでローカル時刻を保存すると曖昧になる
  4. 32ビットに依存しない: 長期的なアプリケーションには32ビットシステムを避ける

よくある質問

Q1. 秒とミリ秒の違いは?

A:

  • 秒(10桁): 1640995200 - 標準的なUnixタイムスタンプ
  • ミリ秒(13桁): 1640995200000 - JavaScriptや一部のAPIで使用

当ツールは両方の形式を自動的に検出します。

Q2. なぜUnixタイムスタンプを使用するのか?

A: 利点:

  • タイムゾーン独立: 世界中で同じ値
  • 簡単な計算: 時間差の計算が簡単な算術演算
  • コンパクトな保存: 単一の整数値
  • 普遍的なサポート: すべてのプログラミング言語でサポート

Q3. 異なるタイムゾーンをどのように処理しますか?

A: 常にUTCでタイムスタンプを保存します。表示時に:

const timestamp = 1640995200;
const date = new Date(timestamp * 1000);

// 異なるタイムゾーンで表示
console.log(date.toLocaleString('ja-JP', { timeZone: 'America/New_York' }));
console.log(date.toLocaleString('ja-JP', { timeZone: 'Europe/London' }));
console.log(date.toLocaleString('ja-JP', { timeZone: 'Asia/Tokyo' }));

Q4. 負のタイムスタンプを使用できますか?

A: はい!負のタイムスタンプは1970年1月1日より前の日付を表します:

const beforeEpoch = new Date(-86400 * 1000); // エポックの1日前
console.log(beforeEpoch.toISOString()); // 1969-12-31T00:00:00.000Z

Q5. Unixタイムスタンプはうるう秒の影響を受けますか?

A: Unixタイムスタンプはうるう秒を無視します。実際の時刻は地球の自転と同期を保つために時々うるう秒を追加しますが、タイムスタンプは連続した秒数を表します。

Q6. タイムスタンプの精度は?

A:

  • : 1秒の精度(ほとんどのアプリケーションに十分)
  • ミリ秒: 1/1000秒の精度(高精度アプリケーション用)
  • マイクロ秒/ナノ秒: 一部のシステムはさらに高い精度をサポート

関連ツール