java - जावा में yyyy-MM-dd प्रारूप की कैलेंडर तिथि




date calendar (6)

कैलेंडर तिथि को yyyy-MM-dd प्रारूप में कैसे परिवर्तित करें।

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();             
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String date1 = format1.format(date);            
Date inActiveDate = null;
try {
    inActiveDate = format1.parse(date1);
} catch (ParseException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

यह inActiveDate = Wed Sep 26 00:00:00 IST 2012 उत्पादन करेगा। लेकिन मुझे 2012-09-26 की क्या ज़रूरत है। मेरा उद्देश्य हाइबरनेट मानदंडों का उपयोग करके इस डेटाबेस की दूसरी तारीख के साथ मेरी डेटाबेस की तुलना करना है। तो मुझे yyyy-MM-dd प्रारूप में दिनांक वस्तु की आवश्यकता है।


java.time

मैडप्रोग्रामर का जवाब सही है, खासकर Joda-Time बारे में टिप। जोडा-टाइम के उत्तराधिकारी को अब जावा 8 में नया जावा.टाइम पैकेज के रूप में बनाया गया है। जावा 8 में उदाहरण कोड यहां दिया गया है।

डेट-टाइम (स्थानीय तिथि के विपरीत) के साथ काम करते समय , महत्वपूर्ण समय क्षेत्र । दिन का महीना समय क्षेत्र पर निर्भर करता है। उदाहरण के लिए, भारत का समय क्षेत्र +05:30 (यूटीसी से ढाई घंटे आगे) है, जबकि France केवल एक घंटा आगे है। तो भारत में एक नए दिन में एक पल एक तारीख है जबकि फ्रांस में उसी पल में "कल की" तारीख है। किसी भी समय क्षेत्र या ऑफ़सेट जानकारी की कमी वाले स्ट्रिंग आउटपुट बनाना अस्पष्टता पैदा कर रहा है। आपने YYYY-MM-DD आउटपुट के लिए कहा है, इसलिए मैंने प्रदान किया है, लेकिन मैं इसकी अनुशंसा नहीं करता हूं। ISO_LOCAL_DATE बजाय मैं इस आउटपुट को प्राप्त करने के लिए ISO_DATE का उपयोग ISO_DATE : 2014-02-25+05:30

ZoneId zoneId = ZoneId.of( "Asia/Kolkata" );
ZonedDateTime zonedDateTime = ZonedDateTime.now( zoneId );

DateTimeFormatter formatterOutput = DateTimeFormatter.ISO_LOCAL_DATE; // Caution: The "LOCAL" part means we are losing time zone information, creating ambiguity.
String output = formatterOutput.format( zonedDateTime );

कंसोल पर डंप करें ...

System.out.println( "zonedDateTime: " + zonedDateTime );
System.out.println( "output: " + output );

जब दौड़ें ...

zonedDateTime: 2014-02-25T14:22:20.919+05:30[Asia/Kolkata]
output: 2014-02-25

Joda समय

Joda-Time लाइब्रेरी का उपयोग कर इसी तरह का कोड, java.time के अग्रदूत।

DateTimeZone zone = new DateTimeZone( "Asia/Kolkata" );
DateTime dateTime = DateTime.now( zone );
DateTimeFormatter formatter = ISODateTimeFormat.date();
String output = formatter.print( dateTime );

आईएसओ 8601

वैसे, आपके इनपुट स्ट्रिंग का वह प्रारूप एक मानक प्रारूप है, जो ISO 8601 द्वारा परिभाषित कई आसान दिनांक-समय स्ट्रिंग प्रारूपों में से एक है

जोडा-टाइम और जावा.टाइम दोनों डिफ़ॉल्ट रूप से आईएसओ 8601 प्रारूपों का उपयोग करते हैं जब विभिन्न दिनांक-समय मानों के स्ट्रिंग प्रस्तुतियों को पार्सिंग और उत्पन्न करते हैं।


आपका कोड गलत है। पार्सिंग तिथि का कोई बिंदु नहीं है और इसे डेट ऑब्जेक्ट के रूप में रखें।

जब आप प्रदर्शित करना चाहते हैं और उसे स्ट्रिंग के रूप में रखना चाहते हैं तो आप कैलेंडर डेट ऑब्जेक्ट को प्रारूपित कर सकते हैं।

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();             
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");          
String inActiveDate = null;
try {
    inActiveDate = format1.format(date);
    System.out.println(inActiveDate );
} catch (ParseException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

मुझे यह कोड मिला जहां डेटाबेस में डेट फ़ील्ड की तुलना करने के लिए दिनांक में प्रारूप की तुलना की जाती है ... यह आपके लिए उपयोगी हो सकता है ...

जब आप सरलीकृत प्रारूप का उपयोग करके स्ट्रिंग को आज तक परिवर्तित करते हैं, तो mysql डेटाबेस में दिनांक फ़ील्ड से तुलना करना मुश्किल है।

तो इस प्रारूप में चयन STR_to_DATE ('yourdate', '% m /% d /% y') -> का उपयोग करके प्रारूप में जावा स्ट्रिंग दिनांक को परिवर्तित करें, फिर आपको mysql दिनांक फ़ील्ड का सटीक दिनांक प्रारूप प्राप्त होगा।

http://javainfinite.com/java/java-convert-string-to-date-and-compare/


java.util.Date ऑब्जेक्ट कस्टम प्रारूप में दिनांक का प्रतिनिधित्व नहीं कर सकता है, इसके बजाय आपको SimpleDateFormat.format विधि का उपयोग SimpleDateFormat.format जो string देता string

String myString=format1.format(date);

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 7);
Date date = c.getTime();
SimpleDateFormat ft = new SimpleDateFormat("MM-dd-YYYY");
JOptionPane.showMessageDialog(null, ft.format(date));

यह आपकी तिथि + 7 दिन महीने, दिन और वर्ष प्रारूप में एक विंडो विंडो फलक में प्रदर्शित करेगा।


public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    cal.set(year, month, date);
    SimpleDateFormat format1 = new SimpleDateFormat("yyyy MM dd");
    String formatted = format1.format(cal.getTime());
    System.out.println(formatted);
}






converter