प्रत्येकतारीख・समयडोरीjava.util.दिनांक,java.util.कैलेंडरमें बदलो
जावा में सब कुछदिनांक, समय स्ट्रिंग, अगर संभव हो तो java.util.कैलेंडर , java.util.दिनांक यह टाइप में कनवर्ट करने के लिए एक नमूना प्रोग्राम है।
रूपांतरण के लिए, पहले डिफ़ॉल्ट दिनांक/समय स्ट्रिंग को प्रारूपित करें java.util.कैलेंडर प्रकार में कनवर्ट करें. यदि रूपांतरण संभव नहीं है, तो एक IllegalArgumentException फेंक दिया जाएगा
भी,java.util.दिनांक टाइप में कनवर्ट करने के लिए कैलेंडर क्लास की getTime() विधि का उपयोग करें।
परिवर्तित किये जा सकने वाले दिनांक प्रारूप इस प्रकार हैं।
नमूना कार्यक्रम
int yyyy = Integer.parseInt(strDate.substring(0,4));
int MM = Integer.parseInt(strDate.substring(5,7));
int dd = Integer.parseInt(strDate.substring(8,10));
int HH = cal.get(कैलेंडर.HOUR_OF_DAY);
int मिमी = cal.get(कैलेंडर.मिनट);
int ss = cal.get(कैलेंडर.सेकंड);
int SSS = cal.get(Calendar.MILLISECOND);
cal.clear();
cal.set(yyyy,MM-1,dd);
int len = strDate.length();
स्विच (लेन) {
केस 10:
तोड़ना;
केस 16: // yyyy/MM/dd HH:mm
HH = Integer.parseInt(strDate.substring(11,13));
मिमी = Integer.parseInt(strDate.substring(14,16));
कैल.सेट(कैलेंडर.HOUR_OF_DAY,HH);
कैल.सेट(कैलेंडर.मिनट,मिमी);
तोड़ना;
केस 19: //yyyy/MM/dd HH:mm:ss
HH = Integer.parseInt(strDate.substring(11,13));
मिमी = Integer.parseInt(strDate.substring(14,16));
ss = Integer.parseInt(strDate.substring(17,19));
कैल.सेट(कैलेंडर.HOUR_OF_DAY,HH);
कैल.सेट(कैलेंडर.मिनट,मिमी);
कैल.सेट(कैलेंडर.सेकंड,एसएस);
तोड़ना;
केस 23: //yyyy/MM/dd HH:mm:ss.SSS
HH = Integer.parseInt(strDate.substring(11,13));
मिमी = Integer.parseInt(strDate.substring(14,16));
ss = Integer.parseInt(strDate.substring(17,19));
एसएसएस = Integer.parseInt(strDate.substring(20,23));
कैल.सेट(कैलेंडर.HOUR_OF_DAY,HH);
कैल.सेट(कैलेंडर.मिनट,मिमी);
कैल.सेट(कैलेंडर.सेकंड,एसएस);
cal.set(कैलेंडर.MILLISECOND,SSS);
तोड़ना;
गलती करना :
नया IllegalArgumentException फेंकें(
"तर्क स्ट्रिंग["+ strDate +
"] को दिनांक स्ट्रिंग में परिवर्तित नहीं किया जा सकता");
}
वापसी कैल;
}
/**
* विभिन्न दिनांक/समय स्ट्रिंग के लिए डिफ़ॉल्ट दिनांक/समय प्रारूप
में बदलो *।
*
*●डिफ़ॉल्ट दिनांक स्वरूप इस प्रकार है।
* केवल तारीख के लिए: वर्ष/माह/दिन
* दिनांक + समय के लिए: yyyy/MM/dd HH:mm:ss.SSS
*
* @param str स्ट्रिंग कनवर्ट करने के लिए
* @रिटर्न डिफ़ॉल्ट दिनांक/समय प्रारूप
* @IllegalArgumentException फेंकता है
* यदि दिनांक स्ट्रिंग को परिवर्तित नहीं किया जा सकता है
*/
निजी स्थैतिक स्ट्रिंग प्रारूप (स्ट्रिंग स्ट्र) {
यदि (str == null || str.trim().length() < 8) {
नया IllegalArgumentException फेंकें(
"तर्क स्ट्रिंग ["+ str +
"] को दिनांक स्ट्रिंग में परिवर्तित नहीं किया जा सकता");
}
str = str.trim();
स्ट्रिंग yyyy = शून्य; स्ट्रिंग एमएम = शून्य; स्ट्रिंग डीडी = शून्य;
स्ट्रिंग एचएच = शून्य; स्ट्रिंग मिमी = शून्य;
स्ट्रिंग एसएस = शून्य; स्ट्रिंग एसएस = शून्य;
// यदि "-" या "/" गायब है
यदि (str.indexOf(“/”)==-1 && str.indexOf(“-”)==-1) {
यदि (str.length() == 8) {
yyyy = str.substring(0,4);
एमएम = स्ट्र.सबस्ट्रिंग(4,6);
dd = str.substring(6,8);
वापसी yyyy+”/”+MM+”/”+dd;
}
yyyy = str.substring(0,4);
एमएम = स्ट्र.सबस्ट्रिंग(4,6);
dd = str.substring(6,8);
एचएच = स्ट्र.सबस्ट्रिंग(9,11);
मिमी = str.substring(12,14);
एसएस = स्ट्र.सबस्ट्रिंग(15,17);
वापसी yyyy+"/"+MM+"/"+dd+" "+HH+":"+mm+":"+ss;
}
स्ट्रिंगटोकनाइज़र टोकन = नया स्ट्रिंगटोकनाइज़र(str,"_/-:. ");
स्ट्रिंगबफ़र परिणाम = नया स्ट्रिंगबफ़र();
for(int i = 0; टोकन.hasMoreTokens(); i++) {
स्ट्रिंग अस्थायी = टोकन.नेक्स्टटोकन();
स्विच(i){
केस 0:// वर्ष भाग
yyyy = fillString(str, temp, "L", "20", 4);
परिणाम.जोड़ें(yyyy);
तोड़ना;
केस 1:// माह भाग
एमएम = फिलस्ट्रिंग (एसटीआर, अस्थायी, "एल", "0", 2);
परिणाम.जोड़ें(“/”+एमएम);
तोड़ना;
केस 2: // दिन का भाग
dd = fillString(str, temp, "L", "0", 2);
परिणाम.जोड़ें(“/”+dd);
तोड़ना;
केस 3:// समय भाग
एचएच = फिलस्ट्रिंग (एसटीआर, अस्थायी, "एल", "0", 2);
परिणाम.जोड़ें(''+HH);
तोड़ना;
केस 4: // मिनट का भाग
मिमी = फिलस्ट्रिंग(str, temp, "L", "0", 2);
परिणाम.जोड़ें(“:”+मिमी);
तोड़ना;
केस 5:// दूसरा भाग
एसएस = फिलस्ट्रिंग (एसटीआर, अस्थायी, "एल", "0", 2);
परिणाम.जोड़ें(“:”+ss);
तोड़ना;
केस 6: // मिलीसेकंड भाग
एसएसएस = fillString(str, temp, "R", "0", 3);
परिणाम.जोड़ें(“।”+एसएसएस);
तोड़ना;
}
}
वापसी परिणाम.toString();
}
निजी स्थैतिक स्ट्रिंग fillString(स्ट्रिंग strDate, स्ट्रिंग str,
स्ट्रिंग स्थिति, स्ट्रिंग addStr,
इंट लेन){
अगर (str.length() > लेन) {
नया IllegalArgumentException फेंकें(
"तर्क स्ट्रिंग["+ strDate +
"] को दिनांक स्ट्रिंग में परिवर्तित नहीं किया जा सकता");
}
वापसी fillString (str, स्थिति, लेन, addStr);
}
/**
* स्ट्रिंग [str] में जोड़ने के लिए स्ट्रिंग [addStr] जोड़ें
* [लेन] भर जाने तक [स्थिति] पर डालें।
*
* *यहां तक कि अगर [str] शून्य या खाली शाब्दिक है, तो [addStr] का उपयोग करें
* [लेन] भरने तक डाला गया परिणाम लौटाता है।
* @param str लक्ष्य स्ट्रिंग
* @परम स्थिति ⇒ L या l से पहले डालें ⇒ R या r के बाद डालें
* @परम लेन पुनः भरने के लिए अंकों की संख्या
* @param addStr स्ट्रिंग डालने के लिए
* @रूपांतरण के बाद स्ट्रिंग वापस करें।
*/
निजी स्थैतिक स्ट्रिंग fillString(स्ट्रिंग str, स्ट्रिंग स्थिति,
इंट लेन,
स्ट्रिंग addStr) {
यदि (addStr == null || addStr.length() == 0) {
नया IllegalArgumentException फेंकें
("डाली जाने वाली स्ट्रिंग का मान अमान्य है। addStr="+addStr);
}
अगर (str == शून्य) {
str = "";
}
स्ट्रिंगबफ़र बफ़र = नया स्ट्रिंगबफ़र(str);
जबकि (लेन > बफर.लंबाई()) {
यदि (स्थिति.बराबर इग्नोरकेस(“एल”)) {
पूर्णांक योग = बफर.लंबाई() + addStr.length();
यदि (योग > लेन) {
addStr = addStr.substring
(0,addStr.length() - (योग - लेन));
बफ़र.इन्सर्ट(0, addStr);
}अन्य{
बफ़र.इन्सर्ट(0, addStr);
}
} अन्य {
बफर.एपेंड (एडस्ट्र);
}
}
अगर (बफ़र.लंबाई() == लेन) {
वापसी बफ़र.toString();
}
वापसी बफ़र.toString().substring(0, len);
}
निष्पादन परिणाम
◆निष्पादन उदाहरण
// yyyy-MM-dd पैटर्न
कैल = टूकैलेंडर(“2007-01-01”);
दिनांक = cal.getTime();
System.out.println(“[2007-01-01] = ''+दिनांक+”'');
//yyyyMMdd पैटर्न
कैल = टूकैलेंडर(“20070101”);
दिनांक = cal.getTime();
System.out.println(“[20070101] = ''+दिनांक+”'');
// yy-MM-dd पैटर्न
कैल = कैलेंडर(“07-01-01”);
दिनांक = cal.getTime();
System.out.println(“[07-01-01] = ''+दिनांक+”'');
System.out.println(“\n—– दिनांक+समय —————————–”);
// yyyy/MM/dd HH:mm:ss का पैटर्न
कैल = टूकैलेंडर(“2007/01/01 12:00:00”);
दिनांक = cal.getTime();
System.out.println(“[2007/01/01 12:00:00] = ''+दिनांक+”'');
//yyyyMMdd HH:mm:ss का पैटर्न
cal = toCalendar(“20070101 12:00:00”);
दिनांक = cal.getTime();
System.out.println(“[20070101 12:00:00] = ''+दिनांक+”'');
// yyyy/MM/dd HH:mm का पैटर्न
कैल = टूकैलेंडर(“2007/01/01 12:00”);
दिनांक = cal.getTime();
System.out.println(“[2007/01/01 12:00] = ''+दिनांक+”'');
System.out.println(“\n—– केवल समय ——————————————”);
// एचएच का पैटर्न: मिमी: एसएस। *यदि केवल समय का उपयोग किया गया है, तो सामने दिनांक जोड़ें।
कैल = कैलेंडर(
नया SimpleDateFormat(“yyyy/MM/dd”).format(new Date()) +
” 12:00:00″);
दिनांक = cal.getTime();
System.out.println(“[12:00:00] = ''+दिनांक+”'');
}
◆आउटपुट परिणाम
----- केवल दिनांक -------------------------------- [2007/01/01] = 'सोम जनवरी 01 00:00: 00 जेएसटी 2007' [2007-01-01] = 'सोम जनवरी 01 00:00:00 जेएसटी 2007' [20070101] = 'सोम जनवरी 01 00:00:00 जेएसटी 2007' [07-01-01] = 'सोम जनवरी 01 00:00:00 जेएसटी 2007' ----- दिनांक+समय ---------------------- [2007/01/01 12:00:00] = 'सोम जनवरी 01 12:00:00 जेएसटी 2007' [20070101 12:00:00] = 'सोम जनवरी 01 12:00:00 जेएसटी 2007' [2007/01/01 12:00] = 'सोम जनवरी 01 12:00:00 जेएसटी 2007' ----- केवल समय -------------------------------- [12: 00:00] = 'बुध जून 06 12:00:00 जेएसटी 2007'
यह नमूना प्रोग्राम चैट और मैसेंजर के लिए है.कैलेंडर/शेड्यूल प्रबंधन फ़ंक्शनवास्तव में प्रयोग किया जाता है.