ブログ

単位やタイムゾーンを混同せず、MacでUnixタイムスタンプを変換する

まず単位を確認し、UTCと現地時刻を比べてから、貼り付け先で必要な日付やタイムスタンプ形式をコピーしましょう。

ログやAPIレスポンスにUnixタイムスタンプが含まれている場合は、変換前に値の単位が秒かミリ秒かを確認します。次に、どのタイムゾーンで時刻を見ているか確認してください。FrsetのTimestampツールでは、数値のタイムスタンプを日時に変換したり、現地時刻の文字列を秒またはミリ秒のタイムスタンプに変換したりできます。

時点と表示を分けて考える

Unixタイムスタンプは、Unixエポックを基準に経過時間を数えます。同じ時点でも、UTCとMacの現地タイムゾーンでは異なる時刻で表示されます。Pythonの日付と時刻に関するドキュメントでは、タイムスタンプ変換とタイムゾーンの役割が説明されています。

たとえば、秒単位の1704067200とミリ秒単位の1704067200000は同じ時点を表し、UTCでは2024年1月1日00:00:00です。Asia/Shanghaiでは同日08:00:00になります。表示に8時間の差があっても、元のタイムスタンプに8時間を足す必要があるわけではありません。

Frsetでタイムスタンプを変換する

  1. Frsetの検索を開き、初期設定のままなら/timeキーワードを使ってTimestampを選びます。
  2. タイムスタンプから日時への変換モードを選びます。
  3. 項目名や引用符を含めず、数値だけを貼り付けます。
  4. 変換を実行し、秒またはミリ秒のどちらとして検出されたか確認します。
  5. 現地時刻とUTCの出力を比較し、必要な形式をコピーします。

出力設定では、現地時刻、UTC、ISO 8601、RFC 3339などを選べます。必要な形式が表示されない場合は、その出力が有効になっているか確認してください。変換に成功すると、結果はクリップボードにコピーされ、履歴にも追加されます。

現在の実装では、秒単位は9桁または10桁、ミリ秒単位は12桁または13桁の値を受け付けます。対応範囲はUTCで2000年1月1日から2100年1月1日までです。負の値、小数の入力、範囲外の日付はこのツールではサポートされていません。値が拒否されても、すべてのシステムでそのデータが無効だと判断できるわけではありません。

現地の日付をタイムスタンプに変換する

日付からタイムスタンプへのモードに切り替え、yyyy-MM-dd HH:mm:ss形式で日付を入力します。たとえば2024-01-01 08:00:00と入力します。出力する単位を秒またはミリ秒から選び、変換を実行してください。

入力はMacの現在のタイムゾーンとして解釈されます。MacがAsia/Shanghaiに設定されていれば、この例は秒単位の1704067200に相当します。別のタイムゾーンでは、同じ入力日時が異なる時点を表すことがあります。相手から受け取った予定時刻を変換する前に、Macのタイムゾーンを確認してください。

この欄は汎用の日付解析機能ではありません。末尾にZが付いたISO日付や、任意の自然言語による日付を貼り付けても、正しく解釈されるとは限りません。指定形式を使い、意図したタイムゾーンも別途確認してください。

結果がおかしいときに確認する3点

  • 単位: ミリ秒を想定するシステムには、秒を想定する場合と異なる数値が必要です。桁数だけに頼らず、APIのドキュメントを確認してください。
  • タイムゾーン: 元の数値を編集する前に、UTCと現地時刻の出力を比べます。表示時刻の差が、必ずしもデータの誤りとは限りません。
  • 意味: そのフィールドが作成、更新、期限切れ、予定時刻のどれを記録しているか確認します。正しく変換できても、フィールドの意味まではわかりません。

貼り付け先で必要な値だけをコピーしてください。数値が必要な場合、ラベルや複数形式の日付を含む結果全体を貼り付けないようにします。期限や予定時刻を実際のシステムに反映する前に、内容を確認してください。

変換結果と一緒に出典を残す

レスポンスを調べるときは、フィールド名、元の値、想定する単位を作業メモに残します。JSONガイドを使えばレスポンスを読みやすくでき、クリップボード履歴からコピーした元の内容を探せます。

タイムスタンプの変換はローカルで行われ、AIプロバイダーは必要ありません。利用できるツールはFrsetのプランによって異なりますが、変換時の単位、範囲、タイムゾーンのルールはどのプランでも同じです。