सिर्फ इसलिए कि तारीख JSON स्कीमा में लिखी गई है, इसका मतलब यह नहीं है कि सत्यापनकर्ता को तारीख की जांच करनी होगी।

स्कीमा कहती है `format: date`, लेकिन खराब तारीख सत्यापन को पार कर जाती है। इसका मतलब यह नहीं हो सकता कि लाइब्रेरी में कोई बग है। `format` को कैसे प्रबंधित किया जाता है यह सत्यापनकर्ता कॉन्फ़िगरेशन पर निर्भर करता है। जब आपको "सत्यापन सफल" मिलता है, तो पहले पूछें कि क्या इसने प्रकार, संरचना की जाँच की, या दिनांक शब्दार्थ की भी जाँच की।

format: date JSON स्कीमा में लिखा गया है, लेकिन एक गैर-मौजूद तारीख सत्यापन को पार कर जाती है। यह आमतौर पर लाइब्रेरी में कोई बग नहीं है। format को कैसे संभाला जाता है यह सत्यापनकर्ता कॉन्फ़िगरेशन पर निर्भर करता है। जब आप "सत्यापन सफल" परिणाम का सामना करते हैं, तो आपको पहले यह पुष्टि करनी चाहिए कि क्या यह प्रकार, संरचना की जाँच करता है, या दिनांक शब्दार्थ की भी जाँच करता है।

यह आलेख उन डेवलपर्स और समीक्षकों के लिए उपयुक्त है जिन्हें दस्तावेज़ डेटा का संरचित सत्यापन करने और दिनांक फ़ील्ड की सटीकता की परवाह करने की आवश्यकता है। इसे पढ़ने के बाद, आप यह निर्धारित करने में सक्षम होंगे कि उत्तीर्ण सत्यापन का क्या अर्थ है और दिनांक नियमों को ठीक करने के लिए प्रति-उदाहरण परीक्षण का उपयोग करें।

यह आलेख प्रसंस्करण विधि को प्रदर्शित करने के लिए सिंथेटिक नमूनों का उपयोग करता है। कोड को एक पृथक वातावरण में उदाहरणों के साथ जांचा गया है और यह सभी वास्तविक फ़ाइलों या उत्पाद प्रदर्शन की गारंटी नहीं है। महत्वपूर्ण दस्तावेज़ों को संसाधित करने से पहले, कृपया मूल दस्तावेज़ अपने पास रखें और पाठ में सीमाओं और स्वीकृति आइटम के अनुसार उनकी समीक्षा करें।

JSON स्कीमा की दिनांक सत्यापन वास्तव में क्या जाँच करती है? एक वाक्य का निष्कर्ष

पहले पुष्टि करें कि क्या format चेक सत्यापनकर्ता में सक्षम है, और फिर पुष्टि करें कि क्या तिथि के शब्दार्थ नियम (क्या यह वास्तव में मौजूद है और इसकी व्याख्या कैसे करें) अन्यथा जिम्मेदार हैं।

आपकी स्थितिअनुशंसित प्रथाएँकारण
केवल डिफ़ॉल्ट सत्यापनकर्ता के साथ format: date की जाँच करेंपहले पुष्टि करें कि क्या FormatChecker स्पष्ट रूप से सक्षम हैformat को कैसे संभाला जाता है यह सत्यापनकर्ता कॉन्फ़िगरेशन पर निर्भर करता है
2026-02-30 जैसी तिथियों की पहचान करने की आवश्यकता हैइसे प्रति-उदाहरण के रूप में परीक्षण सेट में रखेंस्ट्रिंग एक तारीख की तरह दिखती है, जिसका मतलब यह नहीं है कि यह कैलेंडर पर मौजूद है।
स्रोत दिनांक के दिन और महीने का क्रम अज्ञात है।अस्पष्टता को चिह्नित करें, कोई स्वचालित अनुमान नहींdate सत्यापन पास करने से केवल यह पता चल सकता है कि परिवर्तित मूल्य वैध है
समय और समय क्षेत्र के साथ फ़ील्डस्वतंत्र समय प्रोटोकॉल का प्रयोग करेंपहले दस अक्षरों को बीच में नहीं रोका जाना चाहिए और लापरवाही से संसाधित नहीं किया जाना चाहिए
अनुवाद तिथि सत्यापन के लिए उपयोग किया जाता हैraw_text और सामान्यीकृत मान दोनों सहेजेंसमीक्षकों को मूल सामग्री और व्यवस्थित स्पष्टीकरण दोनों देखने की जरूरत है

दो एक जैसे दिखने वाले चेक

2026-02-30 एक स्ट्रिंग है और एक तारीख की तरह दिखती है, लेकिन फरवरी में कोई 30वां दिन नहीं है। केवल नियमित आकृतियों की जाँच करने से ही इस प्रकार की समस्या दूर हो जाएगी। निम्नलिखित डिफ़ॉल्ट सत्यापनकर्ता के परिणामों की तुलना करने और FormatChecker को स्पष्ट रूप से सक्षम करने के लिए पायथन के jsonschema का उपयोग करता है।

एक असंभव तिथि के साथ कॉन्फ़िगरेशन का परीक्षण करें

from jsonschema import Draft202012Validator, FormatChecker

schema = {"type": "string", "format": "date"}
structural = Draft202012Validator(schema)
strict = Draft202012Validator(schema, format_checker=FormatChecker())

def valid(v, value):
    return not list(v.iter_errors(value))

assert valid(structural, "2026-02-30")
assert not valid(strict, "2026-02-30")
assert valid(strict, "2024-02-29")
assert not valid(strict, "2025-02-29")
assert not valid(strict, "26/09/2026")
assert not valid(strict, 20260926)

सिंथेटिक उदाहरण केवल date को सत्यापित करता है। अन्य प्रारूपों में वैकल्पिक निर्भरताएँ या कार्यान्वयन अंतर हो सकते हैं और लॉक किए गए वातावरण में केस-दर-केस आधार पर परीक्षण किया जाना चाहिए। अज्ञात प्रारूप नामों का यह अर्थ नहीं लगाया जा सकता है कि किसी प्रकार की जांच लागू की गई है, और गलत वर्तनी आपको निरर्थक सुरक्षा की भावना दे सकती है।

दिनांक प्रारूप कोई दिनांक व्याख्या नियम नहीं है

स्रोत में 03/04/2026 का मतलब 4 मार्च हो सकता है, या इसका मतलब 3 अप्रैल हो सकता है। आईएसओ फॉर्म में परिवर्तित करने से पहले स्रोत क्षेत्र, फ़ील्ड विनिर्देश या स्पष्ट प्रोटोकॉल की आवश्यकता होती है। date सत्यापन पास करने से केवल यह साबित हो सकता है कि परिवर्तित मूल्य वैध है, लेकिन यह साबित नहीं हो सकता कि आपने सही महीना चुना है।

स्रोत जानकारीक्या करेंजो नहीं करना है
कैलेंडर दिनांक जो मौजूद नहीं हैत्रुटि की रिपोर्ट करें और स्रोत की समीक्षा करेंस्वचालित रूप से अगले महीने तक स्क्रॉल करें
सूर्य और चंद्रमा का अज्ञात क्रमटैग अस्पष्टतासर्वर भाषा के आधार पर अनुमान लगाएं
समय और समय क्षेत्र के साथस्वतंत्र समय प्रोटोकॉल का प्रयोग करेंपहले दस अक्षरों को बेतरतीब ढंग से रोकें
फ़ील्ड खाली हैलुप्त नियमों के अनुसार उपचार करेंआज की तारीख को पूरा करें

प्रतिगमन परीक्षण में कॉन्फ़िगरेशन शामिल करें

परीक्षण सेट में कम से कम तीन प्रकार के मान डालें: एक कानूनी लीप दिवस, एक अवैध लीप दिवस, और एक विकृत मान। तैनाती करते समय इन प्रतिउदाहरणों को चलाना केवल यह जाँचने से अधिक कुशल है कि स्कीमा फ़ाइल मौजूद है या नहीं। यदि सेवा सभी भाषाओं में लागू की जाती है, तो समान परीक्षण सेट को अलग से सत्यापित किया जाना चाहिए, और यह न मानें कि दो सत्यापनकर्ताओं का डिफ़ॉल्ट व्यवहार समान है।

अनुवाद समीक्षा में मूल तिथि बरकरार रखी गई है

OmniDoc अनुवाद सत्यापन के लिए दिनांक निष्कर्षण परिणामों का उपयोग करते समय, raw_text और सामान्यीकृत मान दोनों को सहेजने की अनुशंसा की जाती है। समीक्षक को यह देखने की ज़रूरत है कि "मूल सामग्री क्या है" और "सिस्टम इसकी व्याख्या कैसे करता है" यह निर्धारित करने के लिए कि अंतर अनुवाद, निष्कर्षण या प्रारूप रूपांतरण में है या नहीं।

संदर्भ: JSON स्कीमा स्ट्रिंग और प्रारूप.

📊 कोर तुलना

तुलनात्मक वस्तुडिफ़ॉल्ट सत्यापनकर्ताFormatChecker को स्पष्ट रूप से सक्षम करें
दायरा जांचेंप्रकार और संरचनाएँformat घोषणा के प्रारूप के लिए अतिरिक्त जाँच
2026-02-30 पर निष्कर्षअस्वीकृति न मानेंप्रतिउदाहरणों से पुष्टि की आवश्यकता है
मतलब जब गुजर रहा होइसका मतलब यह नहीं है कि दिनांक शब्दार्थ सही हैअभी भी व्यवसाय पर दिनांक स्पष्टीकरण की जाँच करने की आवश्यकता है

🎯कौन सा तरीका आपके लिए उपयुक्त है?

यदि आपको बस यह सुनिश्चित करना है कि फ़ील्ड एक स्ट्रिंग है या सही ढंग से संरचित है

डिफ़ॉल्ट सत्यापनकर्ता आमतौर पर पर्याप्त होता है, लेकिन ध्यान रखें कि यह आवश्यक रूप से दिनांक शब्दार्थ की जाँच नहीं करता है।

यदि आपको यह पुष्टि करने की आवश्यकता है कि तारीख वास्तव में मौजूद है

FormatChecker को स्पष्ट रूप से सक्षम करें और 2026-02-30 जैसे प्रतिउदाहरणों के साथ सत्यापित करें।

यदि आप स्रोत फ़ाइल में दिनांक जांचना चाहते हैं

पहले दिन और महीने के अनुक्रम के स्रोत नियमों की पुष्टि करें, और फिर मूल पाठ और सामान्यीकृत मानों को सहेजें।

यदि आपकी सेवा सभी भाषाओं में तैनात है

प्रत्येक कार्यान्वयन पर परीक्षणों का एक ही सेट चलाया जाता है।

❓ अक्सर पूछे जाने वाले प्रश्न (FAQ)

1. स्कीमा को format: date के रूप में लिखा गया है, खराब तिथियां अभी भी क्यों बीत सकती हैं?

format को कैसे संभाला जाता है यह सत्यापनकर्ता कॉन्फ़िगरेशन पर निर्भर करता है और दिनांक शब्दार्थ को डिफ़ॉल्ट रूप से आवश्यक रूप से जांचा नहीं जाता है।

2. 2026-02-30 एक उपयोगी परीक्षण मूल्य क्यों है?

यह एक तारीख की तरह दिखता है, लेकिन फरवरी में तीसवां दिन नहीं होता है। केवल उपस्थिति की जाँच करने से इस प्रकार की समस्या दूर हो जाएगी।

3. यदि अज्ञात प्रारूप नाम का उपयोग किया जाता है तो क्या होगा?

इसे ऐसे नहीं माना जाना चाहिए जैसे कि इसकी जाँच कर ली गई है, और वर्तनी की त्रुटियाँ आपको सुरक्षा की झूठी भावना दे सकती हैं।

4. 03/04/2026 को कैसे परिवर्तित किया जाना चाहिए?

उत्पत्ति का क्षेत्र, फ़ील्ड विवरण, या स्पष्ट प्रोटोकॉल आवश्यक है। अन्यथा यह बताना असंभव होगा कि यह 4 मार्च को दर्शाता है या 3 अप्रैल को।

📝सारांश

सत्यापन पास करने का मतलब केवल यह है कि डेटा घोषित नियमों को पूरा करता है, लेकिन इसका मतलब यह नहीं है कि प्रत्येक तिथि का अर्थ सही है। पहले सत्यापनकर्ता के जांच दायरे की पुष्टि करें, और फिर दिनांक प्रसंस्करण को ठीक करने के लिए काउंटरउदाहरण और स्रोत नियमों का उपयोग करें, ताकि परिणाम अधिक विश्वसनीय हो सकें।

इसे अभी आज़माएं: मूल लेआउट को बरकरार रखते हुए अनुवाद शुरू करने के लिए दस्तावेज़ अपलोड करें

अद्यतन 2026-11-13