2011-04-11 8 views
61

मुझे ग्रेगोरियन कैलेंडर उदाहरण मिल गए हैं और आवश्यक आउटपुट प्राप्त करने के लिए SimpleDateFormat (या हो सकता है कि कैलेंडर के साथ उपयोग किया जा सकता है लेकिन यह आवश्यक #fromat() सुविधा प्रदान करता हो)। कृपया, समाधान के आसपास स्थायी समाधान के रूप में अच्छा सुझाव दें।मैं कैलेंडर के साथ SimpleDateFormat का उपयोग कैसे कर सकता हूं?

उत्तर

86

इस प्रयास करें:

Calendar cal = new GregorianCalendar(); 
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
dateFormat.setTimeZone(cal.getTimeZone()); 
System.out.println(dateFormat.format(cal.getTime())); 
+0

जोड़ा गया JamesKingston के जवाब से लापता कदम याद आ रही है। धन्यवाद! – janhink

+1

समय क्षेत्र जोड़ने के लिए क्या प्रभाव है? – kamaci

+2

@kamaci जेम्सकिंस्टन के जवाब के तहत टिप्पणियां देखें। केवल तभी महत्वपूर्ण है जब आपके पास समय क्षेत्र के आधार पर कैलेंडर ऑब्जेक्ट है जो सिस्टम डिफ़ॉल्ट समय क्षेत्र से अलग है, और आप इसे उस कैलेंडर के समय क्षेत्र में प्रिंट करना चाहते हैं। यदि समय क्षेत्र सेट नहीं करते हैं, तो यह डिफ़ॉल्ट सिस्टम समय क्षेत्र का उपयोग करेगा। यदि यह कैलेंडर के समय क्षेत्र जैसा ही है, तो समय क्षेत्र सेट करने से कोई फर्क नहीं पड़ता है। ध्यान दें कि जेम्सकिन्स्टन का जवाब भी काम करता है - तारीख बता रहा है कि किस कैलेंडर का उपयोग करना है इसका मतलब है कि कैलेंडर के समय क्षेत्र का उपयोग करना होगा। – ToolmakerSteve

3

कैलेंडर.getटाइम() एक तिथि देता है जिसका उपयोग SimpleDateFormat के साथ किया जा सकता है।

3

बस calendar.getTime() पर कॉल करें और परिणामी Date ऑब्जेक्ट को format विधि पर पास करें।

31

सम के जवाब में एक कदम

Calendar cal = new GregorianCalendar(); 
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy"); 
#---- This uses the provided calendar for the output ----- 
dateFormat.setCalendar(cal); 
System.out.println(dateFormat.format(cal.getTime())); 
+1

+1, क्योंकि उत्तर सबसे पूरा एक है। इस विधि के बिना डिफ़ॉल्ट कैलेंडर को स्वरूपण के लिए उपयोग किया जाता है। (हालांकि सवाल वास्तव में निर्दिष्ट नहीं किया गया था कि स्वरूपण के लिए किस कैलेंडर का उपयोग किया जाना चाहिए।) – Robert

+2

इस मामले के लिए इससे कोई फर्क नहीं पड़ता, लेकिन यदि आप चीजें करना चाहते हैं: 'cal.setTimeZone (TimeZone.getTimeZone (" GMT ")); ' ' cal.setTime (नई तिथि (record.getMillis())); ऐसा प्रतीत होता है। – JamesKingston

+3

क्षमा करें, अगर किसी को सिर्फ स्वरूपित आउटपुट की आवश्यकता है तो उसे कैलेंडर सेट करने की आवश्यकता क्यों होगी? –

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