सभी लेख

ISO 8601 Duration: स्टैंडर्ड फ़ॉर्मैट में अवधि कैसे लिखें

ISO 8601 स्टैंडर्ड सिर्फ़ तारीख़ का फ़ॉर्मैट ही नहीं, बल्कि अवधि लिखने का फ़ॉर्मैट भी तय करता है — PT1H30M जैसी स्ट्रिंग, जो साफ़ तौर पर और मशीन के पढ़ने लायक़ तरीक़े से "1 घंटा 30 मिनट" बताती है।

फ़ॉर्मैट की संरचना

स्ट्रिंग हमेशा P (period) अक्षर से शुरू होती है। तारीख़ के हिस्से (साल, महीने, दिन) सीधे P के बाद आते हैं, जबकि समय के हिस्से (घंटे, मिनट, सेकंड) T अक्षर के बाद आते हैं, जो तारीख़ वाले हिस्से को समय वाले हिस्से से अलग करता है। जैसे, P2DT4H का मतलब है "2 दिन और 4 घंटे"।

T अक्षर की ज़रूरत क्यों है

T सेपरेटर के बिना, M अक्षर अस्पष्ट होता — यह महीने (तारीख़ वाले हिस्से में) और मिनट (समय वाले हिस्से में) दोनों दर्शाता है। इसीलिए P1M का मतलब है "1 महीना", जबकि PT1M का मतलब है "1 मिनट"।

.NET की दुनिया में यह फ़ॉर्मैट कहाँ काम आता है

.NET में XmlConvert.ToTimeSpan() मेथड सीधे ISO 8601 duration स्ट्रिंग को TimeSpan ऑब्जेक्ट में बदल देता है, और XmlConvert.ToString(TimeSpan) उल्टा काम करता है। यानी किसी .NET सिस्टम को किसी बाहरी API से ISO duration मिले, तो उसे मैन्युअली पार्स करने की ज़रूरत नहीं — बिल्ट-इन मेथड ही काफ़ी है।

यह किस काम आता है

  • किसी थर्ड-पार्टी API के रिस्पॉन्स से वीडियो या इवेंट की अवधि डिकोड करना।
  • अपने API या डेटा फ़ीड के लिए सही ISO 8601 duration स्ट्रिंग बनाना।
  • अवधि को इंसानों के पढ़ने लायक़ फ़ॉर्मैट और मशीन के ISO नोटेशन के बीच बदलना।

नोटेशन में फ़्रैक्शनल सेकंड

ISO 8601 स्टैंडर्ड स्ट्रिंग के सिर्फ़ आख़िरी (सबसे छोटे) कॉम्पोनेंट में फ़्रैक्शनल भाग की इजाज़त देता है — जैसे, PT1.5S का मतलब है "1.5 सेकंड", और PT1H30.5M का मतलब है "1 घंटा 30.5 मिनट"। आख़िरी को छोड़कर किसी भी दूसरे कॉम्पोनेंट में फ़्रैक्शनल भाग की इजाज़त नहीं है।

टूल आज़माएँ