タイムスタンプ(英: timestamp)とはある出来事が発生した日時・日付・時刻などを示す文字列。狭義には郵便物の発送日時等を示すために押される郵便印のことを指す(画像を参照のこと)。現在ではコンピュータにおける「タイムスタンプ」がよく知られている。
コンピュータやデジタルカメラ等の電子機器にて記録されるタイムスタンプ(他との区別のため「デジタル・タイムスタンプ」 英: Digital timestampとも呼ばれる。)は出来事(イベント)が発生した時刻そのものを指すのではなく、コンピュータにイベントが記録された時刻を指す。多くの場合、その違いは重要ではない。ただ、タイムスタンプによりイベントが記録された時刻(例: ログ書き込み時刻)と記録されたイベントの発生時刻の差が開きすぎると整合性に乖離が生じるおそれがあるため、その差は極めて0に近づくべきである。
場合によっては、タイムスタンプは単なるイベントの順序付けである可能性もあるが、その際プログラミングにおいて、タイムスタンプを格納する関数、メソッド(例: date_timeフォーマット)等の利用が常に必要となるわけではない。
このデータは通常、一貫性をもったフォーマットで表現され、これにより2つの異なる記録を容易に比較できるようになり、また、時間経過と共に変化するイベントの進行状況を追跡することが可能となる。このような実データに沿って一貫性をもったタイムスタンプを記録する手法をタイムスタンピング(英: timestamping、タイムスタンプ処理)という。
ただし、いくら一貫性を持った記録を行っても、後から改竄することが可能ならば、その信頼性は失われる。不特定多数からのアクセスを許可しているデータログは容易に改竄できる。このためタイムスタンプを含めたデータログを保管するシステム、サーバには物理的なセキュリティ(例: データセンター等安全な場所への機器保管)・論理的なセキュリティ(オペレーティングシステム(OS)レベルでのセキュリティ、ファイルパーミッションや強制アクセス制御など)を施すべきである。
タイムスタンプは一般にイベントのロギングのため、または、時系列("sequence of events", SOE)の評価を行うため利用される。両ケースにおいて、タイムスタンプはイベントのマーキングのために使われる。ファイルシステムにおいては、タイムスタンプはファイルの作成・更新日時を指す場合もある。多くのOSのファイルシステムではファイルの作成日時(UNIXならびにUnix系OSではctimeという。以下同じ)、更新日時(mtime)、アクセス日時(atime)がタイムスタンプとして記録されている。これらのデータがシステムコールで取り出せるOSも存在する(UNIXではstat)。
このようにコンピュータのタイムスタンプは通常ファイルの日付を示す単なるメタデータである。一方、デジタル署名において、ローカル・マシンのタイムスタンプは信頼性の高いものとして利用される。データの「存在証明」と「完全性」(Integrity、非改竄証明)を担保するため、デジタル署名が利用する「タイムスタンプ」は信頼性が高いものを使用しなければならない。これを実現するものとして、RFC3161 Time stamp protocolが考案されている[注釈 1]。これはPKIを利用するタイムスタンプ認証プロトコルであり、"Time Stamping Authority"(TSA)と呼ばれる認証局がクライアントから送信されるデータのハッシュを元に"Time-stamp token"を作成、これをクライアントへ応答として返す一連の手続きである。これによりクライアントは"Time-stamp token"から対象データの「信頼できるタイムスタンプ」を取得できる。デジタル署名と同時に信頼できるタイムスタンプ処理も電子公証制度や民間の電子署名サービス、存在証明・完全性証明の根幹を成す技術であり、「電子署名法」や各国の電子署名関連の法では必須とされている。
タイムスタンプの例を挙げる。
ISO 8601は日時表現の標準化である。これらの標準化表現は、しばしばタイムスタンプの値を生成する際に利用される。
タイムスタンプは次の意味でも使われる。