2012-01-24 11 views
6

पर मैं एक स्ट्रिंग मूल रूप से वर्ष की तरह निर्धारित किया है यह नहीं है कि पार्स करने के लिए की जरूरत है "13 अगस्त 11:30"डिफ़ॉल्ट दिनांक साल सेट 1970

लेकिन जब मैं उत्पादन की तारीख उस पर, मैं साल कहते हैं सेट साल की कोशिश की लेकिन साल पूरी तरह गलत है क्योंकि आउटपुट "थू अगस्त 13 11:30:00 जीएमटी 3 9 11"

क्या तारीख को पार करने के बाद वर्ष निर्धारित करने का कोई तरीका है?

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM HH:mm"); 

String dateStr = "13 Aug 11:30"; 
Date fromDate = (Date)formatter.parse(dateStr); 


fromDate.setYear(2011); 
+0

शीर्षक सवाल ऐसा लगता है का वर्णन नहीं है? –

+0

इससे पहले कि आप इसे पार्स करने से पहले स्ट्रिंग में वर्ष क्यों न जोड़ें? –

+0

@ मार्टिन क्योंकि मैं एक एचटीएमएल टैग से तारीख को पार्स कर रहा हूं और इसमें कोई वर्ष नहीं है –

उत्तर

11

उपयोग Calendar साल स्थापित करने के लिए:

Calendar c = Calendar.getInstance(); 
c.setTime(fromDate); 
c.set(Calendar.YEAR, 2011); 
fromDate = c.getTime(); 
+1

+1। – Dev

3

क्या आपने setYear विधि के लिए API पढ़ा था?

इस तिथि वस्तु का साल सेट 1900

2011 + 1900 = 3911

3

काफी स्पष्ट रूप कि setYear()java.util.Date राज्यों के लिए प्रलेखन साल पारित कर दिया 1900 कहते हैं प्लस निर्धारित मूल्य होने के लिए में। बस अपने तर्क से 1 9 00 घटाएं।

+0

लीप वर्षों से सावधान रहें: 1 9 00 एक लीप वर्ष नहीं था लेकिन 2000 था। मैं स्ट्रिंग में वर्ष जोड़ने के बारे में आपकी टिप्पणी से सहमत हूं; यह मेरे लिए सबसे सरल लगता है। वर्ष की स्थापना के गैर बहिष्कृत तरीके का उपयोग करने के लिए – MRAB

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