जवाबों:
3 वर्गों की आवश्यकता है क्योंकि वे विभिन्न अवधारणाओं का प्रतिनिधित्व करते हैं इसलिए यह सापेक्ष प्रदर्शन के बजाय नौकरी के लिए उपयुक्त चुनने की बात है। इटैलिक में मेरे द्वारा जोड़े गए टिप्पणियों के प्रलेखन से :
एक अंतराल Joda समय में एक और तत्काल करने के लिए एक मिलीसेकंड तत्काल से समय के अंतराल का प्रतिनिधित्व करता है। दोनों क्षेत्र डेटाइम सातत्य में पूरी तरह से निर्दिष्ट उदाहरण हैं, जो समय क्षेत्र के साथ पूर्ण होते हैं। विशिष्ट समय को परिभाषित किया जाता है जैसे कि यह 20: 00: 00GMT के बीच का अंतराल हो सकता है और आज सुबह 09: 00: 00GMT हो सकता है।
एक अवधि Joda समय में मिलीसेकेंड में मापा समय की अवधि का प्रतिनिधित्व करता है। अवधि अक्सर एक अंतराल से प्राप्त की जाती है। यानी हम एक अवधि प्राप्त करने के लिए एक अंतराल के अंत से शुरुआत को घटा सकते हैं
एक अवधि Joda समय में क्षेत्रों के संदर्भ में परिभाषित समय की अवधि, उदाहरण के लिए, 3 साल 5 महीने 2 दिन और 7 घंटे का प्रतिनिधित्व करता है। यह इस अवधि से भिन्न है कि यह मिलीसेकंड के संदर्भ में अक्षम है। एक अवधि को केवल एक ही संख्या में मिलीसेकंड पर हल किया जा सकता है, यह तात्कालिक (कालक्रम और समय क्षेत्र सहित) निर्दिष्ट करके। उदाहरण के लिए 1 वर्ष की अवधि पर विचार करें, यदि हम इसे 1 जनवरी से जोड़ते हैं तो हम हमेशा अगली जनवरी 1 को पहुंचेंगे लेकिन अवधि इस बात पर निर्भर करेगी कि हस्तक्षेप वर्ष एक लीप वर्ष है या नहीं। इसी तरह अगर हम 1 महीने को 1 महीने के लिए जोड़ते हैं तो हम अगले महीने की 1 तारीख को पहुंचेंगे लेकिन सवाल के आधार पर अवधि (मिलीसेकंड में) अलग-अलग होगी
प्रश्न 3 के लिए, एक अवधि को विभाजित करने के लिए एक विशिष्ट विधि की वास्तव में आवश्यकता नहीं है क्योंकि हम हमेशा एक long
(उपयोग getMillis()
) के रूप में अवधि से मिलीसेकंड की संख्या प्राप्त कर सकते हैं , इसे विभाजित कर सकते हैं और एक नई अवधि (उपयोग करके new Duration(long duration)
) का निर्माण कर सकते हैं ।
किसी अवधि को विभाजित करना वास्तव में ऊपर की अवधि की परिभाषा के आधार पर वास्तविक अर्थ नहीं है। जैसे आधा महीना क्या है? (इसकी लंबाई किस महीने पर निर्भर करेगी)।
Mikej के जवाब में जोड़ने के लिए :
एक Joda- समय अवधि एक "भौतिक" समय अंतराल है; उदाहरण के लिए:
12000 milliseconds
<- यह एक अवधि है
एक जोडा-टाइम अंतराल वास्तव में इंस्टेंट की एक जोड़ी है (तुरंत - अंत तत्काल शुरू करें)। एक त्वरित , फिर से, "भौतिक" अवधारणा है, समयरेखा में एक बिंदु। जैसे (बस एक संभावित संकेतन):
(2010/3/3 19:00:00.000 UTC ; 2010/3/3 20:00:00.000 UTC)
<- यह एक अंतराल है
एक अंतराल , फिर, एक अवधि में परिवर्तित किया जा सकता है , लेकिन रिवर्स नहीं।
इन दो अंतरालों पर विचार करें:
I1=(2010/3/3 19:00:00.000 UTC ; 2010/3/3 20:00:00.000 UTC)
I2=(2010/3/3 21:00:00.000 UTC ; 2010/3/3 22:00:00.000 UTC)
अंतराल के रूप में, I1
और I2
अलग हैं, क्योंकि अंत-बिंदु अलग हैं; लेकिन अगर मैं उन्हें अवधि में परिवर्तित करता हूं, तो मुझे वही मिलता है 3600000 milliseconds
:।
(गणित सादृश्य: अंतराल [10,12]
और [95,97]
अलग-अलग अंतराल हैं , लेकिन उनकी लंबाई समान है : "अंतराल लंबाई" अवधि के लिए नक्शे )।
अंत में, एक अवधि "नागरिक समय" का एक अंतराल है, जिसे कई महीनों, दिनों, घंटों आदि के रूप में व्यक्त किया जाता है। यह स्वयं नहीं है- "भौतिक" अंतराल का प्रतिनिधित्व करता है, इसलिए इसे सीधे रूप में परिवर्तित नहीं किया जा सकता है। अवधि (महीनों में परिवर्तनशील लंबाई है ...)।
यह प्रश्न 3 का उत्तर देता है: आप केवल दो भौतिक समय (एक अवधि) से विभाजित कर सकते हैं।
Period
। ऐसी शब्दावली को मानकीकृत करने का प्रस्ताव उठाया गया है लेकिन अभी तक पूरा नहीं किया गया है।