每台计算机都有一个系统时钟,可以跟踪日期和时间.在从那里检索的最低级别,日期和时间信息.在上面添加来自操作系统的时区信息等,你得到一个Date对象或类似的东西.
根据您的语言/环境,日期对象可以自己执行日期计算,也可以使用其他功能来实现.这些确保正确处理闰年并且不能创建无效日期.
但也许我的问题出错了.
通常,计算机存储自特定时间和日期以来特定时间单位已经过多少的计数.例如,在Unix系统中,这可能是自1990年1月1日格林威治标准时间午夜以来Unix时代的秒数.在Windows中,这是自1601-01-0以来100 ns间隔的数量(感谢JohannesRössel).或者它可能是自计算机启动以来的秒数这么简单的事情.
因此,根据自该时间/日期以来经过的单位数量,操作系统可以计算已经过去的年数,月数,天数等.当然,为了实现这一点,必须考虑各种有趣的东西,如闰年和闰秒.
诸如NTP(网络时间协议)之类的系统可用于通过网络经由NTP服务器将计算机的内部计数与原子钟同步.为此,他们NTP考虑到往返时间并了解到NTP服务器链接的错误类型.