Unixタイムスタンプを日付に、日付をタイムスタンプに変換する
公開日 · 更新日 読了目安 2分
Unixタイムスタンプは、世界時の1970年1月1日の真夜中から経過した時間を数えます。結果の日付を決めるのは2つの問いです。数値の単位と、結果を読むタイムゾーン。
基準となる値
Unixタイムスタンプを変換は、同じ瞬間の3つの読み方を返します。1700000000を、パリの時刻に設定したブラウザで見ると:
| 読み方 | 結果 |
|---|---|
| UTCの日付 | Tue, 14 Nov 2023 22:13:20 GMT |
| 現地の日付 | 2023年11月14日 23:13:20 UTC+1 |
| ISO | 2023-11-14T22:13:20.000Z |
現地時間はブラウザのタイムゾーンに従います。冬のパリでは1時間多くなります。同じタイムスタンプは1つの瞬間で、それを2つのタイムゾーンで読んでいるだけです。
単位は桁数から認識される
既定の設定は、数値の桁数から単位を認識します。以下の3つの値は、精度の違いを除いて同じ瞬間を指します。
| 数値 | 桁数 | 認識された単位 | 得られる瞬間 |
|---|---|---|---|
| 1700000000 | 10 | 秒 | 2023年11月14日 22:13:20 UTC |
| 1700000000000 | 13 | ミリ秒 | 2023年11月14日 22:13:20 UTC |
| 1700000000123456 | 16 | マイクロ秒 | 2023年11月14日 22:13:20.123 UTC |
規則: 11桁までは秒、12〜14桁はミリ秒、15桁と16桁はマイクロ秒。「ミリ秒」設定は、その単位に固定します。
規則の落とし穴
単位は桁数から推定されるため、あいまいな値は一通りにしか読まれません。10000000000(11桁)は2286年11月20日に、100000000000(12桁)は1973年3月3日になります。1973年3月より前のミリ秒のタイムスタンプは11桁以下で、秒として読まれてしまいます。その場合は「ミリ秒」設定に固定してください。
1970年より前の値と2038年の限界
負の数は1970年より前の瞬間を指します。-1は1969年12月31日 23:59:59 UTC、0は1970年1月1日の真夜中です。
数値2147483647は、符号付き32ビット整数が保持できる最大の数で、2038年1月19日 03:14:07 UTCになります。次の数2147483648は03:14:08になります。ツールは制限なく続けられますが、時間を32ビットで保存するシステムにはできません。
日付をタイムスタンプに変換する
数値の代わりに日付を入力します。ツールは、秒とミリ秒のタイムスタンプを返します。
| 入力 | 秒単位のタイムスタンプ | 読み方 |
|---|---|---|
| 2026-01-01 | 1767225600 | 世界時の真夜中、タイムゾーンの指定なし |
| 2026-01-01T10:30:00+01:00 | 1767259800 | パリの10時30分、つまり世界時の9時30分 |
| 2024-02-29 | 1709164800 | うるう年を受け付ける |
タイムゾーンのない日付は、現地時間ではなく世界時として読まれます。ツールは結果の中でそう伝えます。2026年2月30日のように存在しない日付は、メッセージ付きで断られます。
よくある間違い
- ミリ秒を秒として読む: 日付が数千年先になります。
- タイムゾーンを忘れる: 現地として読んだ日付を世界時として送ると、1時間以上ずれます。
- 現地時間のつもりでタイムゾーンなしの日付を書くが、実際にはUTCとして読まれる。
2つの日付の間の日数を数えるには、2つの日付の間の日数を数えるをご覧ください。
変換を確認する
- UTCの行を読み直します。これは端末に依存しません。
- 結果の最初の行に示された単位を確認します。
- 得られた日付を逆に変換します。出発点の数値が得られるはずです。
