2015-07-24 2 views
7

मैं वर्तमान में एंड्रॉइड के लिए एक ऐप बना रहा हूं, लेकिन मुझे यकीन नहीं है कि कौन सी कक्षा वास्तव में उपयोग करने के लिए सबसे अच्छी है।एंड्रॉइड में डेट्स के लिए मुझे किस वर्ग का उपयोग करना चाहिए?

मुझे जिन तिथियों के साथ काम कर रहा है, उनके साथ मुझे क्या करने की ज़रूरत है, जैसे तिथियों की तुलना करना, उनके बीच अंतर प्राप्त करना, और दिनांक गणना (जैसे कि एक छोटी अवधि को जोड़ने/घटाकर दो सप्ताह या किसी भी तारीख को एक महीने)।

मुझे पता है कि जावा एपीआई में मानक तिथि वर्ग भयानक है, इसलिए मैं सोच रहा हूं कि कौन से वर्गों की सिफारिश की जाती है?

मैंने ग्रेगोरियन कैलेंडर श्रेणी, और जोडा टाइम लाइब्रेरी देखी है। हालांकि, मैंने एक पोस्ट पर पढ़ा कि जोडा टाइम लाइब्रेरी के आकार के कारण, ऐप्स के लिए इसकी अनुशंसा नहीं की गई थी।

किसी भी मदद की बहुत सराहना की जाएगी। ^^

संपादित करें: 404notfound से एक टिप्पणी पर, मैंने कैलेंडर इंटरफेस के साथ जाने का फैसला किया। यह उपयोगकर्ता के डिवाइस के लोकेल और समय क्षेत्र के आधार पर स्वचालित इंटरफ़ेस का उपयोग करके स्वचालित रूप से कैलेंडर इंटरफ़ेस के कारण होता है। यह उन स्थानों के संदर्भ में ग्रेगोरियन कैलेंडर (या अन्य विशिष्ट कार्यान्वयन) के कार्यान्वयन पर अधिक लचीला बना देगा, जिन्हें आप इसे रोल कर सकते हैं।

आशा है कि यह एक ही कन्डर्रम के साथ किसी और के लिए सहायक होगा!

संपादित # 2: के बाद आगे Nguyễn Hoài Nam से दिए गए लिंक पर गौर, मैं, ThreeTenABP पुस्तकालय के साथ चला गया गया है के रूप में यह नया समय वर्ग जावा 8 में विशेष रुप से के लिए एक आवरण है, और साबित होगा कैलेंडर दृष्टिकोण की तुलना में उपयोग में अधिक धाराप्रवाह।

+0

@ 404notfound उपयोग के संदर्भ में एंड्रॉइड में ग्रेगोरियन कैलेंडर श्रेणी से तुलना कैसे करता है? मैं बस सोच रहा हूं, ग्रेगोरियन कैलेंडर कैलेंडर कैलेंडर इंटरफ़ेस का ठोस कार्यान्वयन होने के कारण। –

उत्तर

8

मैं बेहतर विकल्प के रूप में ThreeTenABP लाइब्रेरी को देखने की अनुशंसा करता हूं (जैसा कि मैंने उपयोग करने के लिए एक समान अनुप्रयोग माइग्रेट किया है)। यह लाइब्रेरी एंड्रॉइड ऑफ थ्रीटेनबीपी के लिए एक बैकपोर्ट है, जो बदले में नवीनतम जावा 8 की डेट टाइम एपीआई (उसी निर्माता) के जावा 6 के लिए बैकपोर्ट है। (मैं आपको पहले जावा 8 डेट टाइम एपीआई पेशेवरों/विपक्ष की समीक्षा करने के लिए प्रोत्साहित करता हूं।) ध्यान दें कि थ्रीटेनपीपी जोडा टाइम के साथ कुछ समान क्रियाएं प्रदान करता है ताकि आपको उन्हें माइग्रेट करने में कठिनाई न हो। आखिरकार, जैसा कि इस lib में देखा गया है, विधि गणना, lib आकार आदि हमेशा एंड्रॉइड में एक समस्या है। यह lib यह हल करता है।

एक उपयोग मार्गदर्शिका जोड़ने के लिए संपादित किया गया।

  • अपने build.gradle को यह lib जोड़े

    compile 'com.jakewharton.threetenabp:threetenabp:1.0.1'

  • अपने आवेदन कक्षा बनाएं यदि आप ऐसा नहीं किया। उदाहरण के लिए, आपका पैकेज है: com.example.app, उस पैकेज के तहत MyApplication.java नाम की एक नई फ़ाइल रखें। स्निपेट यहां MyApplication

  • अद्यतन अपने AndroidManifest.xml <application> टैग: सही <application के तहत इस पंक्ति जोड़ें: android:name=".MyApplication"

  • अपने अनुप्रयोग चलाएँ।

+0

लिंक पर एक नज़र डालें, लेकिन आप [link] (https://github.com/JakeWharton/ThreeTenABP#why-not-use-threetenbp) को देखना चाहेंगे। डेवलपर कहता है कि यह एंड्रॉइड सिस्टम के साथ बेहद अक्षम है। –

+0

वैसे यह थ्रीटेनबीपी के ** एंड्रॉइड ** के लिए बैकपोर्ट है, कृपया नाम देखें: थ्रीटेन ** ए ** बीपी><थ्रीटेनबीपी। पूरे README.md –

+0

आह पढ़ें, अब मैं अंतर देखता हूं! क्षमा करें, मैंने इसे पहले नहीं देखा था। मैंने लाइब्रेरी और मूल में देखा है, हालांकि मैं इसकी कार्यक्षमता के बारे में ज्यादा नहीं देख सकता हूं? कैलेंडर का उपयोग करने की तुलना में यह मुझे क्या लाभ प्रदान करेगा? –

संबंधित मुद्दे