सीमा
एक हस्ताक्षरित 32-बिट पूर्णांक -2,147,483,648 से 2,147,483,647 तक मान संग्रहीत कर सकता है। यूनिक्स सेकंड के रूप में व्याख्या की गई, सकारात्मक सीमा 2038-01-19T03:14:07Z है। एक सेकंड जोड़ने से वह प्रतिनिधित्व ओवरफ्लो हो जाता है।
किसे जांच करनी चाहिए
लीगेसी ऑपरेटिंग सिस्टम, एम्बेडेड डिवाइस, डेटाबेस कॉलम और बाइनरी प्रोटोकॉल अभी भी हस्ताक्षरित 32-बिट सेकंड का उपयोग कर सकते हैं। 64-बिट टाइमस्टैम्प या उपयुक्त दिनांक प्रकार व्यावहारिक सीमा को सामान्य अनुप्रयोग जीवनकाल से कहीं आगे ले जाता है।
परीक्षण
संपूर्ण स्टैक के माध्यम से सीमा के दोनों किनारों पर मूल्यों का परीक्षण करें: पार्सर, स्टोरेज, एपीआई क्रमबद्धता, क्लाइंट रनटाइम और रिपोर्टिंग टूल। एक आधुनिक एप्लिकेशन सर्वर पुराने डेटाबेस कॉलम या डिवाइस प्रोटोकॉल की सुरक्षा नहीं करता है।
सीमा सत्यापित करें
| यूनिक्स सेकंड | यूटीसी |
|---|---|
2147483646 | 2038-01-19 03:14:06 |
2147483647 | 2038-01-19 03:14:07 |
2147483648 | 2038-01-19 03:14:08 |
तीसरा मान व्यापक प्रतिनिधित्व में एक वैध टाइमस्टैम्प है। यह अधिकतम हस्ताक्षरित 32-बिट पूर्णांक से अधिक है, यूनिक्स समय की परिभाषा से नहीं। इस साइट का टाइमस्टैम्प कनवर्टर सेकंड चयनित होने पर इसे प्रदर्शित कर सकता है।
एक हस्ताक्षरित 32-बिट मान -2,147,483,648 से 2,147,483,647 तक होता है। यदि कोई पुराना सिस्टम ओवरफ्लो को अस्वीकार करने के बजाय रैप करता है, तो अगला मान एक नकारात्मक संख्या बन सकता है और 1901 में दिखाई दे सकता है। सटीक विफलता भाषा, ऑपरेटिंग सिस्टम और स्टोरेज प्रारूप पर निर्भर करती है।
संपूर्ण भंडारण पथ का ऑडिट करें
डेटाबेस कॉलम, ड्राइवर बाइंडिंग, एपीआई स्कीमा, क्रमबद्धता परत और एप्लिकेशन प्रकार की जांच करें। केवल डेटाबेस कॉलम को माइग्रेट करने से क्लाइंट या एम्बेडेड डिवाइस में 32-बिट कास्ट ठीक नहीं होता है। सीमा के तुरंत पहले और बाद में मानों का परीक्षण करें, फिर उन्हें वापस पढ़ें और केवल स्वरूपित तिथि के बजाय संग्रहीत पूर्णांक की तुलना करें।
पूरे सिस्टम में समर्थित एक उपयुक्त व्यापक पूर्णांक या दस्तावेज़ीकृत दिनांक प्रकार का उपयोग करें। एक अहस्ताक्षरित 32-बिट दूसरे काउंटर की एक अलग बाद की सीमा होती है; यह नकारात्मक तिथियों या प्रत्येक प्रोटोकॉल संगतता समस्या का समाधान नहीं करता है।
अन्य सीमाओं का भेद करना
वर्ष 2038 समस्या हस्ताक्षरित 32-बिट सेकंड के बारे में है। जावास्क्रिप्ट की सुरक्षित-पूर्णांक सीमा और ब्राउज़र दिनांक की समर्थित सीमा अलग-अलग बाधाएँ हैं। एक ही क्षण के लिए मिलीसेकंड को सेकंड से बड़े परिमाण की आवश्यकता होती है; माइक्रोसेकंड और नैनोसेकंड फ्लोटिंग-पॉइंट पूर्णांक की सटीक सीमा को बहुत जल्दी पार कर सकते हैं।
स्केल चुनने के लिए सेकंड बनाम मिलीसेकंड का उपयोग करें। माइग्रेशन फ़ाइल के लिए, बैच कनवर्टर पंक्तियों की जाँच कर सकता है, लेकिन यह आपके बाहरी सिस्टम द्वारा उपयोग किए गए प्रकारों का निरीक्षण या मरम्मत नहीं कर सकता है।