java - वर्ष, महीने, दिन से जावा डेट ऑब्जेक्ट बनाना




date time calendar (6)

जावा का कैलेंडर प्रतिनिधित्व सबसे अच्छा नहीं है, वे जावा 8 के लिए इस पर काम कर रहे हैं। मैं आपको जोदा समय या अन्य समान पुस्तकालय का उपयोग करने की सलाह दूंगा

जोडा टाइम लाइब्रेरी से लोकलडेट का उपयोग करके एक त्वरित उदाहरण यहां दिया गया है:

LocalDate localDate = new LocalDate(year, month, day);
Date date = localDate.toDate();

Here आप एक त्वरित प्रारंभ ट्यूटोरियल का पालन कर सकते हैं।

int day = Integer.parseInt(request.getParameter("day"));  // 25
int month = Integer.parseInt(request.getParameter("month")); // 12
int year = Integer.parseInt(request.getParameter("year")); // 1988

System.out.println(year);

Calendar c = Calendar.getInstance();
c.set(year, month, day, 0, 0);  

b.setDob(c.getTime());

System.out.println(b.getDob());  

आउटपुट है:

1988
बुध 25 जनवरी 00:00:08 IST 1 9 8 9

मैं 25 12 1988 गुजर रहा हूं लेकिन मुझे 25 Jan 1989 मिल गया। क्यूं कर?


जावा 8 से पहले यह मेरा पसंदीदा तरीका है:

Date date = new GregorianCalendar(year, month, day).getTime();

मैं कहूंगा कि यह एक क्लीनर दृष्टिकोण है:

calendar.set(year, month - 1, day, 0, 0);

कैलेंडर कैलेंडर में शून्य-आधारित हैं। तो 12 को दिसंबर + 1 महीने के रूप में व्याख्या किया जाता है। उपयोग

c.set(year, month - 1, day, 0, 0);  

java.time

Java 8 में बनाए गए java.time फ्रेमवर्क का उपयोग करना

int year = 2015;
int month = 12;
int day = 22;
LocalDate.of(year, month, day); //2015-12-22
LocalDate.parse("2015-12-22"); //2015-12-22
//with custom formatter 
DateTimeFormatter.ofPattern formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
LocalDate.parse("22-12-2015", formatter); //2015-12-22

यदि आपको समय (घंटा, मिनट, सेकंड) के बारे में जानकारी की आवश्यकता है तो LocalDate से LocalDate कुछ रूपांतरण का उपयोग करें

LocalDate.parse("2015-12-22").atStartOfDay() //2015-12-22T00:00

JavaDoc देखें:

माह - मासिक कैलेंडर फ़ील्ड सेट करने के लिए उपयोग किया जाने वाला मान। महीना मान 0-आधारित है। उदाहरण के लिए, जनवरी के लिए 0।

तो, आपके द्वारा सेट किया गया महीना अगले वर्ष का पहला महीना है।


वर्तमान में सक्रिय रूप से अभी तक कम और अधिक लचीला विकल्प के साथ पूर्ण और सरल समाधान:

SELECT COUNT(*) FROM stats
-- GROUP BY YEAR(record_date), MONTH(record_date), DAYOFMONTH(record_date)
GROUP BY DATE_FORMAT(record_date, '%Y-%m-%d')






java date time calendar