メインコンテンツまでスキップ

HEX to DateTime

このエントリーをはてなブックマークに追加

16進数タイムスタンプ:

📝 スペースと0xプレフィックスは自動的に除去されます

🔤 大文字・小文字どちらも使用可能です

🌍 タイムゾーン設定:

💡 Windowsイベントログなどはローカルタイムゾーンで記録されます。システムレベルのタイムスタンプ(FILETIME、UNIX時間など)の場合はUTCを選択してください。

サンプル入力:

Windows FILETIME:

  • 1DC021193E15810 - 2025/07/31 20:52:23 JST
  • 0x01D7E4C1F17C8000 - 2021/11/29 10:39:26 JST
  • 01D9F1E2A3B4C500 - 2023/09/28 17:06:09 JST

UNIX時間(秒):

  • 64A2F1C0 - 2023/07/04 01:05:20 JST
  • 0x61234567 - 2021/08/23 15:51:19 JST

UNIX時間(ミリ秒):

  • 189A2F1C000 - 2023/07/30 03:38:19 JST (ミリ秒版)
  • 0x18A0B785898 - 2023/08/19 10:45:51 JST (ミリ秒版)

🔥 実用例:Windowsアプリケーションクラッシュの解析

アプリケーションがクラッシュした場合、Windowsのイベントログ(Application)にソース=Application Error, ID=1000でログが記録されます。 このログには異なる形式のタイムスタンプが含まれています:

📋 実際のイベントログ例:

障害が発生しているアプリケーション名: ConsoleApplication1.exe、バージョン: 0.0.0.0、タイム スタンプ: 0x688d71c8
障害が発生したモジュール名: ConsoleApplication1.exe、 バージョン: 0.0.0.0、タイム スタンプ: 0x688d71c8
例外コード: 0xc0000005
フォールト オフセット: 0x0000000000001002
フォールト プロセス ID: 0x154B4
アプリケーションのフォールトの開始時刻: 0x1DC035190799938
Faulting アプリケーション パス:  C:\source\ConsoleApplication1\x64\Release\ConsoleApplication1.exe
Faulting モジュール パス:  C:\source\ConsoleApplication1\x64\Release\ConsoleApplication1.exe

🕐 タイムスタンプの解析方法:

  • タイム スタンプ: 0x688d71c8UNIX時間(秒)として解釈 = 2025/08/02 11:02:48 JST
    アプリケーション・モジュールのビルド日時を示します。EXEファイルやDLLファイルのIMAGE_FILE_HEADER.TimeDateStampフィールドの値です。ただし、ブログ記事によると、ビルドの都度変わるタイムスタンプのようなフィールドは「再現性のあるビルド」の妨げになるため、Windows 10以降のモジュールはハッシュ値が格納されているようです。
  • フォールトの開始時刻: 0x1DC035190799938Windows FILETIME(ビッグエンディアン)として解釈 = 2025/08/02 11:02:56 JST
    実際にクラッシュが発生した正確な日時を示します。

💡 使い方:

  1. イベントログからタイムスタンプをコピー(例:0x688d71c8
  2. このツールの入力欄に貼り付け
  3. UNIX時間(秒)として解釈された結果を確認
  4. フォールト開始時刻(例:0x1DC035190799938)も同様に貼り付け
  5. Windows FILETIMEとして解釈された結果を確認

🔍 解析のポイント:
ビルド日時とクラッシュ日時を比較することで、アプリケーションの動作期間や 問題発生のタイミングを特定できます。古いビルドで長時間動作後にクラッシュした場合と、 新しいビルドですぐにクラッシュした場合では対処方法が異なります。

対応形式について

Windows FILETIME

Windows APIで使用される時刻形式です。1601年1月1日 00:00:00 UTCからの 100ナノ秒単位の経過時間を64ビット整数で表現します。

  • 64ビット(最大16桁の16進数、短い場合は0埋め)
  • ビッグエンディアン形式とリトルエンディアン形式の両方に対応
  • ファイルシステム、レジストリ、イベントログなどで使用
  • 15桁の値(例:1DC021193E15810)も自動的に0埋めして処理

UNIX時間(秒)

1970年1月1日 00:00:00 UTCからの経過秒数です。多くのUnix系システムや プログラミング言語で標準的に使用されています。

  • 32ビット(8桁)または64ビット(16桁)
  • 2038年問題(32ビット制限)に注意
  • Linux、macOS、多くのWeb APIで使用

UNIX時間(ミリ秒)

UNIX時間のミリ秒版です。JavaScriptやJavaなどで使用されることが多い形式です。

  • JavaScript Date.now() の戻り値
  • より精密な時刻表現が可能
  • Web開発でよく使用される

使い方

  1. 16進数のタイムスタンプを入力フィールドに貼り付けます
  2. 0xプレフィックス付きの値も自動的に受け入れられます
  3. 入力値のタイムゾーンを選択します(既定値はブラウザーのタイムゾーン、システムタイムスタンプの場合はUTCに変更)
  4. 結果表示のタイムゾーンを選択します(既定値はブラウザーのタイムゾーン)
  5. 自動的に複数の形式として解釈された結果が表示されます
  6. 32ビット(8桁)以下の値はUNIX時間(秒)が優先表示されます
  7. それより長い値はWindows FILETIMEが優先表示されます
  8. 各結果の「クリップボードにコピー」ボタンで詳細情報をコピーできます
  9. エラーがある場合は警告メッセージが表示されます

タイムゾーン機能

  • 入力値のタイムゾーン: タイムスタンプがどのタイムゾーンで記録されたかを指定します
  • 結果表示のタイムゾーン: 変換結果をどのタイムゾーンで表示するかを指定します
  • 既定値:両方ともブラウザーで検出されたタイムゾーン
  • タイムゾーンを変更すると既存の結果も自動的に再計算されます
  • UTCと選択したタイムゾーンの両方の時刻が表示されます
  • 重要: Windowsイベントログなどはローカルタイムゾーンで記録されます。システムレベルのタイムスタンプ(Windows FILETIME、UNIX時間など)の場合は入力タイムゾーンをUTCに変更してください

注意事項

  • このツールはクライアントサイドで動作し、入力されたデータはサーバーに送信されません
  • 0x プレフィックスは自動的に除去されて処理されます
  • Windowsイベントログからの値をそのままコピー&ペーストできます
  • 16進数の長さや値によって、解釈できる形式が制限される場合があります
  • リトルエンディアン/ビッグエンディアンの判別は自動的に行われますが、期待する結果と異なる場合があります
  • 入力タイムゾーン: Windowsイベントログなどはローカルタイムゾーンで記録されます。Windows FILETIME、UNIX時間などのシステムレベルタイムスタンプはUTCベースなので、入力タイムゾーンをUTCに変更してください
  • タイムゾーン変換はブラウザーのIntl APIを使用するため、古いブラウザーでは動作しない場合があります