系统时间

计算机科学与计算机编程中，系统时间表示在计算机系统中的时间与日期。通常用系统时钟（system clock）从某个时间起点（英语：epoch (reference date)）的嘀嗒数（number of ticks）。例如，类Unix系统采用世界标准时1970年1月1日00:00:00开始的秒数（不考虑闰秒）作为UNIX时间。Windows API使用SYSTEMTIME表示年月日时分秒毫秒；使用FILETIME表示自世界标准时1601年1月1日00:00:00开始的100纳秒为单位的时钟嘀嗒数。 系统时间可以转化为日历时间以适合人去理解。例如Unix时间1000000000对应于日历时间2001年9月9日 01:46:40 UT。 下述均采用格里高利历与外推格里高利历（英语：Proleptic Gregorian calendar）。(*)表示依赖于系统实现。 Windows API提供下述数据结构表示时间： FILETIME:64比特整型值，表示自UTC1601年1月1日开始的每100纳秒的计数。 SYSTEMTIME：精度到毫秒。 time_t：64比特整型值，表示自UTC1970年1月1日开始的秒的计数。 struct tm:精度到秒 高分辨率性能计数器（high-resolution performance counter）：每秒的滴答数。 Windows API提供下述函数： 本地时间与系统时间之间的转换：SystemTimeToTzSpecificLocalTime、TzSpecificLocalTimeToSystemTime 系统时间与文件时间的转换：SystemTimeToFileTime、FileTimeToSystemTime 本地时间与文件时间的转换：LocalFileTimeToFileTime、FileTimeToLocalFileTime 苹果开发者文档并没有清晰地说明CFAbsoluteTime/CFTimeInterval的精度和范围，只有在CFRunLoopTimerCreate方法中说明“精度最多在毫秒级”。然而，相似的，可以互换的类型NSTimeInterval （页面存档备份，存于互联网档案馆） 则列出了精度和范围。 C标准库并没有为系统时间值指定特定的分辨率，历法，范围，和数据类型。而C++库则扩展自C库，所以同样跟随C的实现。 MySQL的实现 Oracle的实现为公元前4712年至公元9999年 Ralf Brown, "Int 0x1A, AH=0x00" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/1A/00.html （页面存档备份，存于互联网档案馆） Ralf Brown, "Int 0x1A, AH=0x02" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/1A/02.html （页面存档备份，存于互联网档案馆） Ralf Brown, "Int 0x1A, AH=0x04" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/1A/04.html （页面存档备份，存于互联网档案馆） CP/M Plus (CP/M Version 3.0) Operating System Guide (PDF). [2016-08-14]. （原始内容存档 (PDF)于2016-12-27）.  BDOS system calls. [2016-08-14]. （原始内容存档于2017-08-19）.  Ralf Brown, "Int 0x21, AH=0x2c" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/21/2C.html （页面存档备份，存于互联网档案馆） Ralf Brown, "Int 0x21, AH=0x2a" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/21/2A.html （页面存档备份，存于互联网档案馆） "Time Utilities Reference" （页面存档备份，存于互联网档案馆） in iOS Developer Library (Apple, 2007). "Time Utilities Reference" （页面存档备份，存于互联网档案馆） in Mac OS X Developer Library (Apple, 2007). "CFRunLoopTimer Reference" （页面存档备份，存于互联网档案馆） in Mac OS X Developer Library (Apple, 2007). z/Architecture Principles of Operation (Poughkeepsie, New York:International Business Machines, 2007) 7-187. z/Architecture Principles of Operation, (Poughkeepsie, New York:International Business Machines, 2000) 4-45, 4-46. IBM intends to extend the date range on future systems beyond 2042. z/Architecture Principles of Operation, (Poughkeepsie, New York:International Business Machines, 2007) 1-15, 4-45 to 4-47. 实际上Windows操作系统按照固定时间间隔返回系统时间。对于Windows NT 或 Server 2003是15.625 ms "DateTime.Now Property" （页面存档备份，存于互联网档案馆） in MSDN (Microsoft, 2010) last updated July 2010. "DateTime.UtcNow Property" （页面存档备份，存于互联网档案馆） in MSDN (Microsoft, 2011) "DateTime.Ticks Property （页面存档备份，存于互联网档案馆） in MSDN (Microsoft, 2010) last updated May 2010. COleDateTime采用浮点数表示，整数部分表示日期；小数部分独立表示时分秒，例如6时整总是表示为0.25，不论整数部分的正负。因此1天间隔表示为1.0。1899年12月30日午夜表示为0.0。 "Date and Time Support" （页面存档备份，存于互联网档案馆） in Embarcadero Developer Network (Embarcadero Technologies, 2013) "System.SysUtils.Time" （页面存档备份，存于互联网档案馆） in Embarcadero Developer Network (Embarcadero Technologies, 2013) "System.SysUtils.GetTime" （页面存档备份，存于互联网档案馆） in Embarcadero Developer Network (Embarcadero Technologies, 2013) "System.SysUtils.Date" （页面存档备份，存于互联网档案馆） in Embarcadero Developer Network (Embarcadero Technologies, 2013) "System.DateUtils.Today" （页面存档备份，存于互联网档案馆） in Embarcadero Developer Network (Embarcadero Technologies, 2013) "System.DateUtils.Tomorrow" （页面存档备份，存于互联网档案馆） in Embarcadero Developer Network (Embarcadero Technologies, 2013) "System.DateUtils.Yesterday" （页面存档备份，存于互联网档案馆） in Embarcadero Developer Network (Embarcadero Technologies, 2013) "System.SysUtils.Now" （页面存档备份，存于互联网档案馆） in Embarcadero Developer Network (Embarcadero Technologies, 2013) "System.SysUtils.DayOfWeek" （页面存档备份，存于互联网档案馆） in Embarcadero Developer Network (Embarcadero Technologies, 2013) "System.SysUtils.CurrentYear" （页面存档备份，存于互联网档案馆） in Embarcadero Developer Network (Embarcadero Technologies, 2013) "In the Microsoft Office Spreadsheet Component, the value 0 evaluates to the date December 30, 1899 and the value 1 evaluates to December 31, 1899. ... In Excel, the value 0 evaluates to January 0, 1900 and the value 1 evaluates to January 1, 1900." XL2000: Early Dates on Office Spreadsheet Component Differ from Excel （页面存档备份，存于互联网档案馆） in (Microsoft Support, 2003). "SYSTEM_CLOCK" （页面存档备份，存于互联网档案馆）, documentation for FORTRAN compiler, Intel Corp., accessed 27 October 2011. SYSTEM_CLOCK — Time function" （页面存档备份，存于互联网档案馆） in The GNU Fortran Compiler (Free Software Foundation) accessed 27 October 2011. System.nanoTime() method （页面存档备份，存于互联网档案馆） in Java Platform, Standard Edition 6: API Specification (Oracle, 2011) accessed 27 October 2011. Clock.systemUTC() and other methods （页面存档备份，存于互联网档案馆） in Java Platform, Standard Edition 8: API Specification (Oracle, 2014) accessed 15 January 2015. JSR-310 Java Time System （页面存档备份，存于互联网档案馆） in Java Platform, Standard Edition 8: API Specification (Oracle, 2014) accessed 15 January 2015. [1] （页面存档备份，存于互联网档案馆） Matlab Help "Foundation Data Types Reference" （页面存档备份，存于互联网档案馆） in Mac OS X Developer Library (Apple, 2011) last modified 6 July 2011, section NSTimeInterval. Douglas Wegscheild, R. Schertler, and Jarkko Hietaniemi, "Time::HiRes" （页面存档备份，存于互联网档案馆） (CPAN Comprehensive Perl Archive Network, 2011) accessed 27 October 2011. Time class （页面存档备份，存于互联网档案馆） in Ruby-Doc.org: Help and documentation for the Ruby programming language (Scottsdale, AZ: James Britt and Neurogami) accessed 27 October 2011. Ruby 1.9.2 Release Notes （页面存档备份，存于互联网档案馆） in Ruby-Doc.org: Help and documentation for the Ruby programming language (Scottsdale, AZ: James Britt and Neurogami) accessed 27 October 2011. Using the Get-Date Cmdlet. Microsoft TechNet. [11 December 2013]. （原始内容存档于2017-08-01）.  Windows PowerShell Tip of the Week – Formatting Dates and Times. Microsoft TechNet. [11 December 2013]. （原始内容存档于2017-07-31）.  Critical and Significant Dates （页面存档备份，存于互联网档案馆）, J. R. Stockton (retrieved 3 December 2015) The Boost Date/Time Library （页面存档备份，存于互联网档案馆） (C++) The Boost Chrono Library (C++) The Chronos Date/Time Library (Smalltalk) Joda Time （页面存档备份，存于互联网档案馆）, The Joda Date/Time Library (Java) The Perl DateTime Project （页面存档备份，存于互联网档案馆） (Perl) The Ruby Date/Time Library （页面存档备份，存于互联网档案馆） (Ruby)