सिस्टम टाइम
कंप्यूटर विज्ञान और कंप्यूटर प्रोग्रामिंग में, सिस्टम समय समय बीतने के बारे में कंप्यूटर सिस्टम की धारणा का प्रतिनिधित्व करता है। इस अर्थ में, समय में कैलेंडर पर बीतने वाले दिनों को भी शामिल किया जाता है।
सिस्टम समय को एक सिस्टम क्लॉक द्वारा मापा जाता है, जिसे आमतौर पर टिक की संख्या की एक साधारण गिनती के रूप में लागू किया जाता है, जो कि कुछ मनमाने ढंग से शुरू होने की तारीख से स्थानांतरित हो गया है, जिसे युग कहा जाता है। उदाहरण के लिए, यूनिक्स और पॉज़िक्स-संगत सिस्टम सिस्टम समय ("यूनिक्स टाइम") को एन्कोड करते हैं क्योंकि 1 जनवरी 1970 00:00:00 यूटी पर यूनिक्स युग की शुरुआत के बाद से लीप सेकंड के अपवाद के साथ सेकंड की संख्या। सिस्टम जो विंडोज एपीआई के 32-बिट और 64-बिट संस्करणों को लागू करते हैं, जैसे कि विंडोज 9एक्स और विंडोज एनटी, सिस्टम समय दोनों सिस्टम समय के रूप में प्रदान करते हैं, जो वर्ष/माह/दिन/घंटा/मिनट/सेकंड/मिलीसेकंड मान के रूप में प्रतिनिधित्व करते है, और FILETIME, 1 जनवरी 1601 00:00:00 यूटी के बाद से 100-नैनोसेकंड टिक्स की गिनती के रूप में प्रस्तुत किया गया है, जैसा कि प्रोलेप्टिक ग्रेगोरियन कैलेंडर में माना गया है।
सिस्टम समय को कैलेंडर समय में परिवर्तित किया जा सकता है, जो मानवीय समझ के लिए अधिक उपयुक्त है। उदाहरण के लिए, युग की शुरुआत के बाद से यूनिक्स प्रणाली का समय 1000000000 सेकंड कैलेंडर समय 9 सितंबर 2001 01:46:40 यूटी में अनुवाद करता है। लाइब्रेरी सबरूटीन्स जो इस तरह के रूपांतरणों को संभालते हैं, वे समय क्षेत्र, डेलाइट सेविंग टाइम (डीएसटी), लीप सेकंड और उपयोगकर्ता की लोकेल सेटिंग के समायोजन से भी निपट सकते हैं। पुस्तकालय दिनचर्या भी आम तौर पर प्रदान की जाती है जो कैलेंडर समय को सिस्टम समय में परिवर्तित करती है।
अन्य समय माप
सिस्टम समय से निकटता से संबंधित प्रक्रिया समय है, जो निष्पादन प्रक्रिया द्वारा खपत कुल सीपीयू समय की गणना है। यह उपयोगकर्ता और सिस्टम सीपीयू समय में विभाजित हो सकता है, क्रमशः उपयोगकर्ता कोड और सिस्टम कर्नेल कोड को निष्पादित करने में लगने वाले समय का प्रतिनिधित्व करता है। प्रक्रिया समय सीपीयू निर्देशों या घड़ी चक्रों का एक मिलान है और आमतौर पर दीवार के समय से कोई सीधा संबंध नहीं है।
फाइल सिस्टम प्रत्येक फाइल और निर्देशिका के फाइल नियंत्रण ब्लॉक (या इनोड) में टाइमस्टैम्प को संग्रहीत करके फ़ाइलों के निर्माण, संशोधन और/या एक्सेस किए जाने के समय को ट्रैक करता है।
इतिहास
अधिकांश पहली पीढ़ी के पर्सनल कंप्यूटर तारीखों और समय को ट्रैक नहीं करते थे। इनमें वे सिस्टम शामिल थे जो सीपी/एम ऑपरेटिंग सिस्टम चलाते थे, साथ ही साथ एप्पल II, बीबीसी माइक्रो, और कमोडोर पीईटी के शुरुआती मॉडल भी शामिल थे। ऐड-ऑन पेरिफेरल बोर्ड जिसमें ऑनबोर्ड बैटरी बैकअप के साथ रीयल-टाइम क्लॉक चिप्स शामिल थे, आईबीएम पीसी और एक्सटी के लिए उपलब्ध थे, लेकिन आईबीएम एटी पहला व्यापक रूप से उपलब्ध पीसी था जो मदरबोर्ड में निर्मित डेट/टाइम हार्डवेयर से सुसज्जित था। कंप्यूटर नेटवर्क की व्यापक उपलब्धता से पहले, सिस्टम समय को ट्रैक करने वाले अधिकांश पर्सनल कंप्यूटर सिस्टम केवल स्थानीय समय के संबंध में ऐसा करते थे और विभिन्न समय क्षेत्रों के लिए अनुमति नहीं देते थे।
वर्तमान तकनीक के साथ, अधिकांश आधुनिक कंप्यूटर स्थानीय नागरिक समय को ट्रैक करते हैं, जैसा कि वीसीआर, डीवीआर, केबल टीवी रिसीवर, पीडीए, पेजर, सेल फोन, फैक्स मशीन, जैसे कई अन्य घरेलू और टेलीफोन आंसरिंग मशीन, कैमरा, कैमकॉर्डर, एयर कंडीशनर और माइक्रोवेव ओवन निजी उपकरण करते है।
एम्बेडेड सिस्टम (जैसे कि रास्पबेरी पाई, अरुडिनो, और अन्य समान सिस्टम) के भीतर काम करने वाले माइक्रोकंट्रोलर्स में हमेशा समय का ट्रैक रखने के लिए आंतरिक हार्डवेयर नहीं होता है। ऐसे कई नियंत्रक तंत्र बाह्य समय के ज्ञान के बिना कार्य करते हैं। जिन लोगों को इस तरह की जानकारी की आवश्यकता होती है, वे आम तौर पर बाहरी स्रोत से वर्तमान समय प्राप्त करके, जैसे समय सर्वर या बाहरी घड़ी से, या उपयोगकर्ता को वर्तमान समय में मैन्युअल रूप से प्रवेश करने के लिए संकेत देकर अपने आधार समय को प्रारंभ करते हैं।
कार्यान्वयन
सिस्टम क्लॉक को आमतौर पर एक प्रोग्रामेबल इंटरवल टाइमर के रूप में लागू किया जाता है जो समय-समय पर सीपीयू को बाधित करता है, जो तब टाइमर इंटरप्ट सर्विस रूटीन (बाधित सेवा दिनचर्या) को निष्पादित करना शुरू कर देता है। यह रूटीन आमतौर पर सिस्टम क्लॉक (एक साधारण काउंटर) में एक टिक जोड़ता है और अन्य आवधिक हाउसकीपिंग कार्यों (प्रीमेशन, आदि) को उस कार्य पर लौटने से पहले संभालता है जो सीपीयू रुकावट से पहले निष्पादित कर रहा था।
सिस्टम समय को पुनः प्राप्त करना
निम्नलिखित सारणी विभिन्न ऑपरेटिंग सिस्टम, प्रोग्रामिंग भाषाओं और अनुप्रयोगों में सिस्टम समय को पुनः प्राप्त करने के तरीकों को दर्शाती है। (*) द्वारा चिन्हित मान सिस्टम पर निर्भर हैं और कार्यान्वयन के दौरान भिन्न हो सकते हैं। सभी तिथियों को ग्रेगोरियन या प्रोलेप्टिक ग्रेगोरियन कैलेंडर तिथियों के रूप में दिया गया है।
ध्यान दें कि कार्यान्वयन के समय के मापन का संकल्प इस तरह के मापों की समान सटीकता का अर्थ नहीं है। उदाहरण के लिए, एक सिस्टम वर्तमान समय को माइक्रोसेकंड में मापे गए मान के रूप में लौटा सकता है, लेकिन वास्तव में केवल 100 हर्ट्ज (10 एमएस) की आवृत्ति के साथ अलग-अलग घड़ी की टिक को समझने में सक्षम हो सकता है।
ऑपरेटिंग सिस्टम
ऑपरेटिंग सिस्टम | कमांड अथवा फंक्शन | रेसोलुशन | युग या श्रेणी |
---|---|---|---|
एंड्रॉयड | java.lang |
1 ms | 1 जनवरी 1970 |
बायोस (आईबीएम पीसी) | INT 1Ah, AH=00h[1] | 54.9254 ms 18.2065 Hz |
वर्तमान दिन की मध्यरात्रि |
INT 1Ah, AH=02h[2] | 1 s | वर्तमान दिन की मध्यरात्रि | |
INT 1Ah, AH=04h[3] | 1 day | 1 जनवरी 1980 से 31 दिसंबर 1999 या 31 दिसंबर 2079 (सिस्टम निर्भर) | |
सीपी/एम प्लस | System Control Block:[4] scb$base+58h, Days since 31 December 1977 scb$base+5Ah, Hour (BCD) scb$base+5Bh, Minute (BCD) scb$base+5Ch, Second (BCD) |
1 s | 31 दिसंबर 1977 से 5 जून 2157 तक |
BDOS function 69h> (T_GET):[5] word, Days since 1 January 1978 byte, Hour (BCD) byte, Minute (BCD) byte, Second (BCD) |
|||
डॉस (माइक्रोसॉफ्ट) | C:\>DATE
|
10 ms | 1 जनवरी 1980 से 31 दिसंबर 2099 तक |
INT 21h, AH=2Ch SYSTEM TIME [6]INT 21h, AH=2Ah SYSTEM DATE [7]
|
|||
आईओएस (एप्पल) | CFAbsoluteTimeGetCurrent() [8]
|
< 1 ms | 1 जनवरी 2001 ± 10,000 वर्ष |
मैक ओएस | CFAbsoluteTimeGetCurrent() [9]
|
< 1 ms[10][note 1] | 1 जनवरी 2001 ±10,000 वर्ष |
ओपन वीएमएस | SYS$GETTIM()
|
100 ns[11] | 17 नवंबर 1858 से 31 जुलाई 31,086 |
()
|
1 μs[12] | 1 जनवरी 1970 से 7 फरवरी 2106 | |
()
|
1 ns[12] | ||
जेड/ओएस | STCK [13]: 7–187
|
2−12 μs 244.14 ps[13]: 4–45, 4–46 |
1 जनवरी 1900 से 17 सितंबर 2042 यूटी |
STCKE
|
1 जनवरी 1900 से 36,765 ई. तक | ||
यूनिक्स , पॉज़िक्स
( सी तिथि और समय कार्यों को भी देखें ) |
$date time()
|
1 s | (*)
1 जनवरी 1970 ( लिनक्स 5.9 से पहले 19 जनवरी 2038 तक) से 2 जुलाई 2486 (लिनक्स 5.10 के बाद से) 1 जनवरी 1970 से 4 दिसंबर एडी 292,277,026,596 |
()
|
1 μs | ||
()
|
1 ns | ||
ओएस/2 | DosGetDateTime()
|
10 ms | 1 जनवरी 1980 से 31 दिसंबर 2079 |
विंडोज | GetSystemTime()
|
1 ms | 1 जनवरी 1601 से 14 सितंबर 30828, 02:48:05.4775807 |
GetSystemTimeAsFileTime()
|
100 ns | ||
GetSystemTimePreciseAsFileTime()
|
प्रोग्रामिंग लैंग्वेज और एप्लिकेशन
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 (see C date and time functions) | time()
|
1 s (*)[note 2] | (*)[note 2] |
C++ | std::time() std::chrono::system_clock::now()
|
1 s (*)[note 2] 1 ns (C++11, OS dependent) |
(*)[note 2] |
C# | System.DateTime.Now [14]System.DateTime.UtcNow [15]
|
100 ns[16] | 1 January 0001 to 31 December 9999 |
CICS | 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 |
Delphi (Embarcadero Technologies)[17] |
System.SysUtils.Time [18]
|
1 ms | 0/0/0000 0:0:0:000 to 12/31/9999 23:59:59:999 [sic] |
System.SysUtils.GetTime [19] (alias for System.SysUtils.Time )
| |||
System.SysUtils.Date [20]
|
0/0/0000 0:0:0:000 to 12/31/9999 0:0:0:000 [sic] | ||
System.DateUtils.Today [21]
| |||
System.DateUtils.Tomorrow [22]
| |||
System.DateUtils.Yesterday [23]
| |||
System.SysUtils.Now [24]
|
1 s | 0/0/0000 0:0:0:000 to 12/31/9999 23:59:59:000 [sic] | |
System.SysUtils.DayOfWeek [25]
|
1 day | 1 to 7 | |
System.SysUtils.CurrentYear [26]
|
1 year | (*) | |
Emacs Lisp | (current-time)
|
1 μs (*) | 1 January 1970 |
Erlang | erlang:system_time() , os:system_time() [27]
|
OS dependent, e.g. on Linux 1ns[27] | 1 January 1970[27] |
Excel | date()
|
? | 0 January 1900[28] |
Fortran | DATE_AND_TIME SYSTEM_CLOCK
|
(*)[29] | 1 January 1970 |
CPU_TIME
|
1 μs | ||
Go | time.Now()
|
1 ns | 1 January 0001 |
Haskell | Time.getClockTime
|
1 ps (*) | 1 January 1970 (*) |
Data.Time.getCurrentTime
|
1 ps (*) | 17 November 1858 (*) | |
Java | java.util.Date() System.currentTimeMillis()
|
1 ms | 1 January 1970 |
System.nanoTime() [31]
|
1 ns | arbitrary[31] | |
Clock.systemUTC() [32]
|
1 ns | arbitrary[33] | |
JavaScript, TypeScript | (new Date()).getTime() Date.now()
|
1 ms | 1 January 1970 |
Matlab | now
|
1 s | 0 January 0000[34] |
MUMPS | $H (short for $HOROLOG )
|
1 s | 31 December 1840 |
LabVIEW | Tick Count
|
1 ms | 00:00:00.000 1 January 1904 |
Get Date/Time in Seconds
|
1 ms | 00:00:00.000 1 January 1904 | |
Objective-C | [NSDate timeIntervalSinceReferenceDate]
|
< 1 ms[35] | 1 January 2001 ±10,000 Years[35] |
OCaml | 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 [36]
|
1 μs | ||
PHP | time() mktime()
|
1 s | 1 January 1970 |
microtime()
|
1 μs | ||
PureBasic | Date()
|
1 s | 1 January 1970 to 19 January 2038 |
Python | datetime.now().timestamp()
|
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() [37]
|
1 μs (*) | 1 January 1970 (to 19 January 2038 prior to Ruby 1.9.2[38]) |
Smalltalk | Time microsecondClock (VisualWorks) |
1 s (ANSI) 1 μs (VisualWorks) 1 s (Squeak) |
1 January 1901 (*) |
Time totalSeconds (Squeak) | |||
SystemClock ticksNowSinceSystemClockEpoch (Chronos) | |||
SQL | CURDATE() or CURRENT DATE CURTIME() or CURRENT TIME GETDATE() NOW() or CURRENT TIMESTAMP 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 [39][40]
|
100 ns[16] | 1 January 0001 to 31 December 9999 |
[DateTime]::Now [14][DateTime]::UtcNow [15]
| |||
Visual Basic .NET | System.DateTime.Now [14]System.DateTime.UtcNow [15]
|
100 ns[16] | 1 January 0001 to 31 December 9999 |
यह भी देखें
टिप्पणियाँ
- ↑ 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.0 2.1 2.2 2.3 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.
संदर्भ
- ↑ Ralf D. Brown (2000). "Int 0x1A, AH=0x00". Ralf Brown's Interrupt List.
- ↑ Ralf D. Brown (2000). "Int 0x1A, AH=0x02". Ralf Brown's Interrupt List.
- ↑ Ralf D. Brown (2000). "Int 0x1A, AH=0x04". Ralf Brown's Interrupt List.
- ↑ "CP/M Plus (CP/M Version 3.0) Operating System Guide" (PDF).
- ↑ "BDOS system calls".
- ↑ Ralf D. Brown (2000). "Int 0x21, AH=0x2c". Ralf Brown's Interrupt List.
- ↑ Ralf D. Brown (2000). "Int 0x21, AH=0x2a". Ralf Brown's Interrupt List.
- ↑ "Time Utilities Reference". iOS Developer Library. 2007.
- ↑ "Time Utilities Reference". Mac OS X Developer Library. 2007.
- ↑ "Time Utilities - Foundation". Apple Developer Documentation. Retrieved 6 July 2022.
- ↑ Ruth E. Goldenberg; Lawrence J. Kenah; Denise E. Dumas (1991). VAX/VMS Internals and Data Structures, Version 5.2. Digital Press. ISBN 978-1555580599.
- ↑ 12.0 12.1 "VSI C Run-Time Library Reference Manual for OpenVMS Systems" (PDF). VSI. November 2020. Retrieved 2021-04-17.
- ↑ 13.0 13.1 z/Architecture Principles of Operation (PDF). Poughkeepsie, New York: International Business Machines. 2007.
- ↑ 14.0 14.1 14.2 "DateTime.Now Property". Microsoft Docs.
- ↑ 15.0 15.1 15.2 "DateTime.UtcNow Property". Microsoft Docs.
- ↑ 16.0 16.1 16.2 "DateTime.Ticks Property". Microsoft Docs.
- ↑ "Date and Time Support". Embarcadero Developer Network. 2013.
- ↑ "System.SysUtils.Time". Embarcadero Developer Network. 2013.
- ↑ "System.SysUtils.GetTime". Embarcadero Developer Network. 2013.
- ↑ "System.SysUtils.Date". Embarcadero Developer Network'. 2013.
- ↑ "System.DateUtils.Today". Embarcadero Developer Network. 2013.
- ↑ "System.DateUtils.Tomorrow". Embarcadero Developer Network. 2013.
- ↑ "System.DateUtils.Yesterday". Embarcadero Developer Network. 2013.
- ↑ "System.SysUtils.Now". Embarcadero Developer Network. 2013.
- ↑ "System.SysUtils.DayOfWeek". Embarcadero Developer Network. 2013.
- ↑ "System.SysUtils.CurrentYear". Embarcadero Developer Network. 2013.
- ↑ 27.0 27.1 27.2 "Time and Time Correction in Erlang". www.erlang.org.
- ↑ "XL2000: Early Dates on Office Spreadsheet Component Differ from Excel". Microsoft Support. 2003. Archived from the original on 24 October 2007.
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.
- ↑ "SYSTEM_CLOCK". Intel Fortran Compiler 19.0 Developer Guide and Reference. 29 April 2019. Retrieved 23 July 2019.
- ↑ "SYSTEM_CLOCK — Time function". The GNU Fortran Compiler. Retrieved 27 October 2011.
- ↑ 31.0 31.1 "System.nanoTime() method". Java Platform, Standard Edition 6: API Specification. 2015. Retrieved 23 July 2019.
- ↑ "Clock.systemUTC() and other methods". Java Platform, Standard Edition 8: API Specification. 2014. Retrieved 15 January 2015.
- ↑ "JSR-310 Java Time System". Java Platform, Standard Edition 8: API Specification. 2014. Retrieved 15 January 2015.
- ↑ "Matlab Help".
- ↑ 35.0 35.1 "NSTimeInterval - Foundation". Apple Developer Documentation.
- ↑ Douglas Wegscheild, R. Schertler, and Jarkko Hietaniemi, "Time::HiRes". CPAN - Comprehensive Perl Archive Network. 2011. Retrieved 27 October 2011.
- ↑ James Britt; Neurogami. "Time class". Ruby-Doc.org: Help and documentation for the Ruby programming language. Scottsdale, AZ. Retrieved 27 October 2011.
- ↑ Yugui (18 August 2010). "Ruby 1.9.2 is released".
The new 1.9.2 is almost compatible with 1.9.1, except these changes: ... Time is reimplemented. The bug with year 2038 is fixed.
- ↑ "Using the Get-Date Cmdlet". Microsoft Docs. Retrieved 23 July 2019.
- ↑ "Windows PowerShell Tip of the Week – Formatting Dates and Times". Microsoft Docs. Retrieved 23 July 2019.
बाहरी संबंध
- 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 Archived 2009-02-19 at the Wayback Machine (Perl)
- date: Ruby Standard Library Documentation (Ruby)