System time


System time
Unix date command

In computer science and computer programming, system time represents a computer system's notion of the passing of time. In this sense, time also includes the passing of days on the calendar.

System time is measured by a system clock, which is typically implemented as a simple count of the number of ticks that have transpired since some arbitrary starting date, called the epoch. For example, Unix and POSIX-compliant systems encode system time as the number of seconds elapsed since the start of the Unix epoch at 1 January 1970 00:00:00 UT. Windows NT counts the number of 100-nanosecond ticks since 1 January 1601 00:00:00 UT as reckoned in the proleptic Gregorian calendar, but returns the current time to the nearest millisecond.

System time can be converted into calendar time, which is a form more suitable for human comprehension. For example, the Unix system time 1000000000 seconds since the beginning of the epoch translates into the calendar time 9 September 2001 01:46:40 UT. Library subroutines that handle such conversions may also deal with adjustments for timezones, Daylight Saving Time (DST), leap seconds, and the user's locale settings. Library routines are also generally provided that convert calendar times into system times.

Contents

Other time measurements

Closely related to system time is process time, which is a count of the total CPU time consumed by an executing process. It may be split into user and system CPU time, representing the time spent executing user code and system kernel code, respectively. Process times are a tally of CPU instructions or clock cycles and generally have no direct correlation to wall time.

File systems keep track of the times that files are created, modified, and/or accessed by storing timestamps in the file control block (or inode) of each file and directory.

History

Most first-generation PCs did not keep track of dates and times. These included systems that ran the CP/M operating system, early models of the Apple II, and the Commodore PET, among others. The IBM PC was the first widely available personal computer that came equipped with date/time hardware built into the motherboard, and subsequent add-on peripheral boards included real-time clock chips with on-board battery back-up. Prior to the widespread availability of computer networks, most personal computer systems that did track system time did so only with respect to local time and did not make allowances for other time zones.

With current technology, all modern computers keep track of local civil time, as do many other household and personal devices such as VCRs, DVRs, cable TV receivers, PDAs, pagers, cell phones, fax machines, telephone answering machines, cameras, camcorders, central air conditioners, and microwave ovens.

Retrieving system time

The following tables illustrate methods for retrieving the system time in various operating systems, programming languages, and applications.

Note: values marked by (*) are system-dependent and may differ across implementations.
All dates are given as Gregorian or proleptic Gregorian calendar dates.

Operating systems

Operating system Command or function Resolution Epoch or range
BIOS (IBM PC) INT 1Ah,AH=00h[1] 54.931 ms
18.204 Hz
Midnight of the current day
INT 1Ah,AH=02h[2]</ref> 1 s 1 January 1980
DOS (Microsoft) TIME
INT 21h,AH=2Ch[3]
10 ms 1 January 1980 to 31 December 2099
Mac OS (Apple) CFAbsoluteTimeGetCurrent()[4] < 1 ms [5][note 1] 1 January 2001 ±10,000 years[5][note 1]
OpenVMS (HP) SYS$GETTIM() 100 ns 17 November 1858 to AD 31,086
z/OS (IBM) STCK[6] 2−12 μs
244.14 ps[7]
1 January 1900 to 17 September 2042 UT[8]
Unix, POSIX date
time()
1 s (*)
1 January 1970 to 19 January 2038
1 January 1970 to AD 292,277,026,596
gettimeofday() 1 μs
Windows (Microsoft) GetSystemTime() 1 ms 1 January 1601 to AD 30,828
GetSystemTimeAsFileTime() 100 ns

Programming languages and applications

Language/Application Function or variable Resolution Epoch or range
Ada Ada.Calendar.Clock 100 μs to
20 ms (*)
1 January 1901 to 31 December 2099 (*)
AWK systime() 1 s (*)
BASIC, True BASIC DATE, DATE$
TIME, TIME$
1 s (*)
Business BASIC DAY, TIM 0.1 s (*)
C time() 1 s (*)[note 2] (*)[note 2]
C++ std::time() 1 s (*)[note 2] (*)[note 2]
C# (Microsoft) System.DateTime.Now[9]
System.DateTime.UtcNow[10]
100 ns [11] 1 January 1 to 31 December 9999
CICS (IBM) ASKTIME 1 ms 1 January 1900
COBOL FUNCTION CURRENT-DATE 1 s 1 January 1601
Common Lisp (get-universal-time) 1 s 1 January 1900
Delphi (Borland) date
time
1 ms
(floating point)
1 January 1900
Excel (Microsoft) date()  ? 0 January 1900[12]
Fortran DATE_AND_TIME
SYSTEM_CLOCK
(*)[13]

[14]

1 January 1970
CPU_TIME 1 μs
Haskell Time.getClockTime 1 μs (*) 1 January 1970 (*)
Java (Sun) java.util.Date()
System.currentTimeMillis()
1 ms 1 January 1970
System.nanoTime()[15] 1 ns arbitrary [15]
JavaScript Date() 1 ms 1 January 1970
MUMPS $H (short for $HOROLOG) 1 s 31 December 1840
Objective-C [NSDate timeIntervalSinceReferenceDate] < 1 ms[16] 1 January 2001 ±10,000 Years[16]
Objective Caml Unix.time () 1 s 1 January 1970
Unix.gettimeofday () 1 μs
Extended Pascal GetTimeStamp() 1 s (*)
Turbo Pascal GetTime()
GetDate()
10 ms (*)
Perl time() 1 s 1 January 1970
Time::HiRes::time[17] 1 μs
PHP time()
mktime()
1 s 1 January 1970
microtime() 1 μs
Python time.time() 1 μs (*) 1 January 1970
RPG CURRENT(DATE), %DATE
CURRENT(TIME), %TIME
1 s 1 January 0001 to 31 December 9999
CURRENT(TIMESTAMP), %TIMESTAMP 1 μs
Ruby Time.now()[18] 1 μs (*) 1 January 1970 (to 19 January 2038 prior to Ruby 1.9.2[19])
Smalltalk Time microsecondClock
(VisualWorks)
1 s (ANSI)
1 μs (VisualWorks)
1 s (Squeak)
1 January 1901 (*)
Time totalSeconds
(Squeak)
SystemClock ticksNowSinceSystemClockEpoch
(Chronos)
SQL CURDATE()
CURTIME()
GETDATE()
NOW()
SYSDATE()
3 ms 1 January 1753 to 31 December 9999 (*)
60 s 1 January 1900 to 6 June 2079
Standard ML Time.now () 1 μs (*) 1 January 1970 (*)
TCL [clock seconds] 1 s 1 January 1970
[clock milliseconds] 1 ms
[clock microseconds] 1 μs
[clock clicks] 1 μs (*) (*)
Windows PowerShell Get-Date[20] 100 ns [11] 1 January 1 to 31 December 9999
[DateTime]::Now[9]
[DateTime]::UtcNow[10]
Visual Basic .NET (Microsoft) System.DateTime.Now[9]
System.DateTime.UtcNow[10]
100 ns [11] 1 January 1 to 31 December 9999

Notes

  1. ^ a b The Apple Developer Documentation is not clear on the precision & range of CFAbsoluteTime/CFTimeInterval, except in the CFRunLoopTimerCreate documentation which refers to 'sub-millisecond at most' precision. However, the similar type NSTimeInterval appears to be interchangeable, and has the precision and range listed.
  2. ^ a b c d The C standard library does not specify any specific resolution, epoch, range, or datatype for system time values. The C++ library encompasses the C library, so it uses the same system time implementation as C.

See also

References

  1. ^ Ralf Brown, "Int 0x1A, AH=0x00" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/1A/00.html
  2. ^ Ralf Brown, "Int 0x1A, AH=0x02" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/1A/02.html
  3. ^ Ralf Brown, "Int 0x21, AH=0x2c" in Ralf Brown's Interrupt List, 2000, http://www.delorie.com/djgpp/doc/rbinter/ix/21/2C.html
  4. ^ "Time Utilities Reference" in Mac OS X Developer Library (Apple, 2007).
  5. ^ a b "CFRunLoopTimer Reference" in Mac OS X Developer Library (Apple, 2007).
  6. ^ z/Architecture Principles of Operation (Poughkeepsie, New York:International Business Machines, 2007) 7-187.
  7. ^ z/Architecture Principles of Operation, (Poughkeepsie, New York:International Business Machines, 2000) 4-45, 4-46.
  8. ^ 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.
  9. ^ a b c "DateTime.Now Property" in MSDN (Microsoft, 2010) last updated July 2010.
  10. ^ a b c "DateTime.UtcNow Property" in MSDN (Microsoft, 2011)
  11. ^ a b c "DateTime.Ticks Property in MSDN (Microsoft, 2010) last updated May 2010.
  12. ^ "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).
  13. ^ "SYSTEM_CLOCK", documentation for FORTRAN compiler, Intel Corp., accessed 27 October 2011.
  14. ^ SYSTEM_CLOCK — Time function" in The GNU Fortran Compiler (Free Software Foundation) accessed 27 October 2011.
  15. ^ a b System.nanoTime() method in Java Platform, Standard Edition 6: API Specification (Oracle, 2011) accessed 27 October 2011.
  16. ^ a b "Foundation Data Types Reference" in Mac OS X Developer Library (Apple, 2011) last modified 6 July 2011, section NSTimeInterval.
  17. ^ Douglas Wegscheild, R. Schertler, and Jarkko Hietaniemi, "Time::HiRes" (CPAN Comprehensive Perl Archive Network, 2011) accessed 27 October 2011.
  18. ^ Time class in Ruby-Doc.org: Help and documentation for the Ruby programming language (Scottsdale, AZ: James Britt and Neurogami) accessed 27 October 2011.
  19. ^ 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.
  20. ^ "Get-Date" in Microsoft TechNet,[dead link].

External links


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • system time — time according to the clock in the computer …   English contemporary dictionary

  • System time —   The time according the system s clock …   International financial encyclopaedia

  • Time (Unix) — time is a command in the Unix operating systems. It is used to determine the duration of execution of a particular command.UsageTo use the command, simply precede any command by the word time, such as:time lsWhen the command completes, time will… …   Wikipedia

  • Time from NPL — Map showing the location of the Anthorn VLF transmitter within Cumbria …   Wikipedia

  • Time (disambiguation) — Time is a common term for the experience of duration, and a fundamental quantity of measuring systems.Time may also refer to: Books and magazines * Time (magazine) * , a novel by Stephen Baxter Film and television * Time (film) * Time (TV series) …   Wikipedia

  • Time — This article is about the measurement. For the magazine, see Time (magazine). For other uses, see Time (disambiguation). The flow of sand in an hourglass can be used to keep track of elapsed time. It also concretely represents the present as… …   Wikipedia

  • Time zone — Timezone and TimeZone redirect here. For other uses, see Time zone (disambiguation). Local time redirects here. For the mathematical concept, see Local time (mathematics). This article is about time zones in general. For a list of time zones by… …   Wikipedia

  • Time dilation — This article is about a concept in physics. For the concept in sociology, see time displacement. In the theory of relativity, time dilation is an observed difference of elapsed time between two events as measured by observers either moving… …   Wikipedia

  • time and date — In computing, time and date are commands that are used to display and set the current time and date of the operating system. Both commands are available in DOS, OS/2 and Microsoft Windows command line interpreters (shells) such as COMMAND.COM,… …   Wikipedia

  • Time and date — In computing, time and date are commands that are used to display and set the current time and date of the operating system. Both commands are available in DOS, OS/2 and Microsoft Windows command line interpreters (shells) such as COMMAND.COM,… …   Wikipedia


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.