CommandDialog

エポック変換ツール

Unixタイムスタンプ(1970年1月1日以降の経過秒数)を人間が読み取り可能な日付に変換し、逆も同様に行い、時間ベースの計算と比較を簡略化します。

Unixタイムスタンプ
現地の日付
RFC 3339
ISO 8601
ISO 9075
ISO 7231
UTC日付

エポックタイムまたはUnixタイムスタンプとは何ですか?

Unixタイムスタンプは、エポックタイムまたはPOSIXタイムとも呼ばれ、1970年1月1日 00:00:00 UTC(コーディネート世界時)のUnixエポックから経過した秒数として時点を表すシステムで、キャンプ秒は含まれません。コンピューティングにおける時間表現のユニバーサルな標準として機能し、システムやアプリケーション間で正確な時間ベースの計算、比較、同期を可能にします。

Unixタイムスタンプは、イベントを追跡し、タスクをスケジュールし、時間に敏感な操作を管理するため、データベース、ロギングシステム、API、分散システムで広く使用されています。ただし、Unixタイムはキャンプ秒を除外するため、UTCの正確な表現ではありません。多くのレガシーシステムはUnixタイムを符号付き32ビット整数として保存しており、2038年1月19日 03:14:08 UTCにオーバーフローし、2038年問題につながります。

2038年1月19日に何が起こるのですか?

2038年問題(Y2038、エポックエンド、またはUnix Y2K)は、符号付き32ビット整数を使用してUnixタイムを保存するシステムにとって深刻な問題です。これらのシステムは、2038年1月19日 03:14:07 UTC以降の時刻を表現できません。最大値(2,147,483,647秒)を超えると、タイムスタンプがインクリメントされるとオーバーフローし、負の数になり、システムが1901年12月13日と誤って解釈します。

この整数オーバーフローは、正確な時間管理が不可欠な金融取引、航空、医療、インフラストラクチャなどの分野の重要なシステムを混乱させる可能性があります。これを軽減するため、最新のシステムは64ビット整数に移行しており、これにより未来数10億年の時間を表現できます。開発者は、レガシーシステムを更新し、堅牢な時間処理ライブラリを採用して、2038年関連の障害を防ぐことも奨励されています。

異なるプログラミング言語で現在のエポックタイムを取得する方法は?

PHP

$epoch = time();

Javascript

var epoch = Math.floor(Date.now() / 1000);

Typescript

let epoch: number = Math.floor(Date.now() / 1000);

C++

#include <chrono>
auto epoch = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count();

Java

long epoch = System.currentTimeMillis() / 1000;

Rust

use std::time::{SystemTime, UNIX_EPOCH};
let epoch = SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs();

Go

import "time"
epoch := time.Now().Unix()

Swift

import Foundation
let epoch = Int(Date().timeIntervalSince1970)

Bash Shell

epoch=$(date +%s)

C#

long epoch = DateTimeOffset.UtcNow.ToUnixTimeSeconds();

MySQL

SELECT UNIX_TIMESTAMP(NOW());

MATLAB

epoch = posixtime(datetime('now'));

VBA

Dim epoch As Long
epoch = DateDiff("s", "1/1/1970", Now())