2011-09-02 17 views
9

मुझे इन तिथियों के प्रारूप की वजह से दिनांक सॉर्ट करने में कोई समस्या है।एंड्रॉइड: स्ट्रिंग में दिनांक प्रारूप

मैं तिथि प्राप्त:

final Calendar c = Calendar.getInstance(); 
    mYear = c.get(Calendar.YEAR); 
    mMonth = c.get(Calendar.MONTH); 
    mDay = c.get(Calendar.DAY_OF_MONTH); 

और मैं इन मूल्यों के साथ एक स्ट्रिंग का निर्माण।

dateRappDB = (new StringBuilder() 
    .append(mYear).append(".") 
    .append(mMonth + 1).append(".") 
    .append(mDay).append(" ")).toString(); 

समस्या यह है कि यदि माह उदाहरण फरवरी के लिए है, mMonth मूल्य 2. अक्टूबर से की तरह महीने (10) के साथ तारीखों मेरी सूची में पहले आता है।

मुझे क्या चाहिए कि महीने और दिन एमएम और डीडी की तरह तैयार किए गए हैं। लेकिन मुझे नहीं पता कि मेरे मामले में इसे कैसे किया जाए।

संपादित:

मैं एक DateFormat का उपयोग कर की तरह ऊपर कहा द्वारा समस्या हल हो।

dateRappDB = (new StringBuilder() 
    .append(mYear).append(".") 
    .append(mMonth + 1).append(".") 
    .append(mDay).append(" ")).toString(); 

इस द्वारा::

मैं इस प्रतिस्थापित

Date date = new Date(mYear - 1900, mMonth, mDay); 
dateFacDB = DateFormat.format("yyyy.MM.dd", date).toString(); 

और यह काम करता है। आपकी मदद के लिए आप सभी को धन्यवाद :)

+2

इसे आजमाएं: http: // stackoverflow।com/प्रश्न/7165901/एंड्रॉयड की तारीख और समय प्रारूप http://stackoverflow.com/questions/6705031/how-to-format-a-date http: // stackoverflow। कॉम/प्रश्न/6520553/डेट-एंड-टाइम-फॉर्मेट –

उत्तर

3

आपको तारों को क्रमबद्ध करने की आवश्यकता नहीं है, स्ट्रिंग नहीं। इसके अलावा, क्या आपने DateFormat पर ध्यान दिया है? यह आपके लिए जो जोड़ता है वह बनाता है।

+0

मैं इस समाधान को दूसरा करता हूं, जब तक कि कुछ असुरक्षित कारणों के लिए आपको वास्तव में उन तारों के साथ काम करने की ज़रूरत नहीं है ... लेकिन ernazm सिर पर नाखून हिट करता है: एंड्रॉइड क्लासेस का उपयोग करें: डी – Kheldar

0

यदि मैं आपकी समस्या को समझता हूं, तो आप तिथियों की एक सूची बनाते हैं और चूंकि वे तार हैं, इसलिए उन्हें एक शब्दकोश-क्रम संख्या-क्रम में व्यवस्थित किया जाता है, जिसका अर्थ है कि आप फरवरी से पहले अक्टूबर (10 से पहले) प्राप्त करते हैं।

यदि मैं आप थे, तो मैं अपने परिणामों को एक कंटेनर में संग्रहीत करता हूं जहां मैं सम्मिलन बिंदु (एक सरणी सूची की तरह) को नियंत्रित करता हूं या जहां मैं सॉर्टिंग एल्गोरिदम को नियंत्रित कर सकता हूं।

1

यहाँ दिनांक स्वरूप के लिए उदाहरण है

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); 
Date date = new Date(); 

System.out.println("format 1 " + sdf.format(date)); 

sdf.applyPattern("E MMM dd yyyy"); 
System.out.println("format 2 " + sdf.format(date)); 
13
यहाँ

स्ट्रिंग के लिए तिथि परिवर्तित करने के लिए एक आसान तरीका है:

SimpleDateFormat simpleDate = new SimpleDateFormat("dd/MM/yyyy");

String strDt = simpleDate.format(dt);

7
Calendar calendar = Calendar.getInstance(); 
Date now = calendar.getTime(); 
String timestamp = simpleDateFormat.format(now); 

इन में आ सकते हैं आसान

SimpleDateFormat simpleDateFormat = 
    new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZZZZ"); 

इस प्रारूप के बराबर है -> "2016-01-01T09: 30: ००.०००००० + 01: 00"

SimpleDateFormat simpleDateFormat = 
    new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ"); 

इस प्रारूप के बराबर है -> "2016-06-01T09 : 30: 00 + 01: 00 "

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