システム日付【system date】
概要

システム日付の取得元になるのが、「リアルタイムクロック」(RTC)と呼ばれる時計用の回路である。コンピュータ内部に搭載されており、主電源が切れている間も内蔵電池によって動作を続け、現在の日付と時刻を刻み続けている。OSは起動時や稼働中にこのRTCの値を読み込み、システム日付として反映する。
内部的な時刻管理には協定世界時(UTC)が用いられることが多く、利用者が設定した地域(ロケール)に応じて現地の標準時に変換した上で提供される。日本国内の設定であれば、日本標準時(JST)に基づく年・月・日がシステム日付となる。日付の境界はロケール設定によって変化する場合がある。
RTCはカウントが進むに連れて実際の時刻からわずかずつずれてゆくため、何らかの方法で定期的に補正する必要がある。システム日付が実際の日付から大きくずれると、ファイルのタイムスタンプやログの記録日時、認証処理などに不整合が生じる可能性がある。業務システムにおける決済処理や取引記録の整合性も、システム日付の正確さに依存している部分が大きい。
かつては機器の初回起動時や電池切れの際に、利用者が手動で正しい日付を設定する必要があった。現在では「NTP」(Network Time Protocol)を利用してインターネット上の時刻サーバから現在時刻を自動的に取得し、システム日付を定期的に補正する仕組みが普及している。利用者が意識することなく正確な日付・時刻が常に維持されるようになっている。なお、仮想環境や省電力状態ではクロックの動作が停止または遅延することがあり、これがシステム日付のずれとして現れる場合がある。
システム日付は、利用者の操作やプログラムの命令によって任意の日付に変更することも可能である。ソフトウェアが特定の期日に正しく動作するかを検証するテスト環境では、意図的にシステム日付を過去や未来の日付に進めて動作確認を行うことがある。ただし、システムごとの仕様によって指定できる範囲に上限と下限があり、これを外れた過去や未来には設定できない。