Noda Time अपने कोड को अधिक आंतरिक रखता है। यह इसे कम लचीला बनाता है, जिसमें आप वास्तव में अपना स्वयं का कैलेंडर सिस्टम नहीं बना सकते हैं - लेकिन इसका मतलब यह भी है कि एपीआई सीखने और उपयोग करने के लिए सरल है।
Noda Time में Nullity लगभग हमेशा एक त्रुटि है। अब और नहीं "यदि आप एक समय क्षेत्र के लिए शून्य में गुजरते हैं, तो हम सिस्टम डिफ़ॉल्ट का उपयोग करेंगे।" आपको स्पष्ट होना चाहिए।
चूक की बात ... हम एक डिफ़ॉल्ट के रूप में सिस्टम घड़ी का उपयोग नहीं करते हैं। हमें IClock
एक SystemClock
कार्यान्वयन के साथ एक अलग इंटरफ़ेस मिला है , लेकिन "वर्तमान समय" के लिए कुछ भी नहीं है।
विशिष्ट बिल्डर वर्गों के अलावा, सब कुछ अपरिवर्तनीय है। मुझे लगता है कि MutableDateTime
(एट अल) जोडा टाइम में एक गलती थी।
हमने कैलेंडर सिस्टम और समय क्षेत्र को एक दूसरे से अलग कर दिया है, क्योंकि वे वास्तव में बहुत अलग चिंताएं हैं। इसलिए LocalDate
, कैलेंडर प्रणाली के बारे में जानता है जो इसका उपयोग करता है, लेकिन समय क्षेत्र नहीं, उदाहरण के लिए।
स्थानीय दिनांक / समय मानों को ज़ोन की तिथि / समय मानों को हल करने का तरीका, Joda Time की तुलना में JSR-310 के करीब है। हम कुछ खास तरीके से अस्पष्टता / समय को रोक नहीं पाते हैं: हम उपयोगकर्ता को यह कहते हैं कि वे क्या चाहते हैं।
Joda Time में विभिन्न स्थान हैं जहां यह अनुमान लगाने की कोशिश करता है कि आप कमजोर टाइप के एपीआई (जैसे नए Instant(Object)
) से क्या चाहते हैं । Noda Time इससे बचता है जहाँ तक यह संभव है - यह बहुत अधिक स्पष्ट है।
Noda Time इस बात पर सख्त है कि आप किस प्रकार के अंकगणित में किस प्रकार का प्रदर्शन कर सकते हैं। उदाहरण के लिए, आप नहीं एक जोड़ सकते हैं Period
एक करने के लिए ZonedDateTime
है, क्योंकि वहाँ के आसपास दिन के उजाले संक्रमण बचत जो कर सकता था ऊपर गड़बड़ बातें विषमताएं हैं। इसके बजाय, हम उपयोगकर्ताओं को कन्वर्ट करने के लिए प्रोत्साहित करते हैं, LocalDateTime
हालांकि वे गैर-ज़ोन्डे संदर्भ में कितना अंकगणित चाहते हैं, और फिर वापस कन्वर्ट करते हैं।
Noda Time विरासत का उपयोग करता है बल्कि कम - Joda Time में पदानुक्रम बेहद गहरे और जटिल होते हैं। तथ्य यह है कि बहुत से नोदा समय मूल्य प्रकारों पर आधारित होता है, वास्तव में यह वैसे भी लागू होता है, लेकिन कुछ स्थान ऐसे हैं जहां हम अभी भी वर्ग विरासत का उपयोग कर रहे हैं, लेकिन मैं विरासत के पदानुक्रम को महत्वपूर्ण रूप से ध्वस्त करने में कामयाब रहा हूं ... अक्सर खर्च पर लचीलेपन का जो मुझे सार्थक नहीं लगा :)