タイムスタンプ
タイムスタンプとは、デジタル記録またはファイルに「刻印」された特定の日付と時刻です。通常は名詞として使われますが、「タイムスタンプを付ける」という動詞として使うこともできます。たとえば、「そのツイートには、2021年1月8日午前10時44分にタイムスタンプが付けられました」のように使います。
タイムスタンプは、コンピューターシステムで日付と時刻を保存する標準的な方法です。たとえば、オペレーティングシステムは各ファイルに、作成日時と変更日時のタイムスタンプを付けます。デジタルカメラは、撮影した写真それぞれにタイムスタンプを付けます。ソーシャルメディアのプラットフォームは、上記のTwitterの例のように、投稿ごとにタイムスタンプを保存します。
タイムスタンプは普遍的に使われていますが、統一されたタイムスタンプ形式はありません。たとえば、プログラミング言語ではある方法が使われ、データベースでは別の方法が使われることがあります。オペレーティングシステムでさえ、タイムスタンプの保存方法はそれぞれ異なります。たとえば、WindowsはANSI規格を使用し、1601年1月1日からの経過秒数としてタイムスタンプを保存します。Unixは、1970年1月1日の午前0時から経過した秒数としてタイムスタンプを保存します。さまざまなタイムスタンプ形式が存在するため、現在の多くのプログラミング言語には、タイムスタンプを変換する組み込みの関数があります。
タイムスタンプを整数として保存すると、必要な保存容量が最小限で済むため効率的です。ただし、表示するときは、その数値を読みやすい時刻形式に変換する必要があります。MySQLにはTIMESTAMPデータ型があり、タイムスタンプを次の形式で簡単に保存できます。
YYYY-MM-DD HH:MM:SS
MySQLは、イギリスを基準とするUTCでタイムスタンプを保存します。そのため、米国中部時間で2021年1月16日午前10時15分30秒の時刻は、MySQLデータベースに次のように保存されます。
2021-01-16 16:15:30
この日時をLinuxのタイムスタンプに変換すると、次のように表されます。
1610813730
タイムスタンプには、解像度、つまり細かさの異なるものもあります。場合によっては秒で十分ですが、ミリ秒、あるいはナノ秒が必要になることもあります。上記のLinuxのタイムスタンプは、ミリ秒では1610813730000となり、1000分の1秒の解像度を提供します。コンピューター処理では、さらに高い解像度のタイムスタンプが必要になることがあります。PHPには、マイクロ秒単位でタイムスタンプを出力するmicrotime()関数があり、100万分の1秒の解像度を提供します。
知識をテストする