जावा में दिनांक और समय के साथ कार्य का परिचय
\n\nदिनांक और समय के साथ कार्य किसी भी एप्लिकेशन के विकास में प्रमुख कार्यों में से एक है। चाहे वह इवेंट लॉगिंग हो, डिलीवरी समय की गणना हो, शेड्यूल के साथ कार्य हो या डेटा विश्लेषण हो - यह समझना आवश्यक है कि Java अस्थायी ऑब्जेक्ट्स को कैसे प्रबंधित करता है। इस लेख में हम सभी मुख्य पहलुओं पर चर्चा करेंगे: पुराने API (Date और Calendar) से लेकर आधुनिक पैकेज java.time (Java 8+) तक। आप सीखेंगे कि दिनांक कैसे बनाएं, फ़ॉर्मेट करें, तुलना करें और उनके बीच अंतर की गणना करें।
1. पुराना API: Date और Calendar
\n\nJava 8 से पहले, दिनांक के साथ कार्य के लिए मुख्य क्लासेस java.util.Date और java.util.Calendar थे। ये अभी भी लीगेसी कोड में पाए जाते हैं, इसलिए उनकी बुनियादी क्षमताओं और सीमाओं को समझना महत्वपूर्ण है।
1.1 Date क्लास
\nDate मिलीसेकंड सटीकता के साथ समय के एक विशिष्ट क्षण का प्रतिनिधित्व करता है। हालांकि, इसकी कई कमियां हैं: यह म्यूटेबल (मल्टीथ्रेडेड एप्लिकेशन में असुरक्षित) है और अंतर्राष्ट्रीयकरण का खराब समर्थन करता है।
import java.util.Date;\n\npublic class DateExample {\n public static void main(String[] args) {\n // वर्तमान दिनांक और समय\n Date now = new Date();\n System.out.println("वर्तमान दिनांक: " + now);\n\n // वर्ष प्राप्त करने का पुराना तरीका (1900 + ...)\n int year = now.getYear() + 1900;\n System.out.println("वर्ष: " + year);\n }\n}\n\n1.2 Calendar क्लास
\nCalendar अधिक लचीला, लेकिन बोझिल क्लास है। यह दिनांक के अलग-अलग घटकों (वर्ष, महीना, दिन) में हेरफेर करने की अनुमति देता है।
import java.util.Calendar;\n\npublic class CalendarExample {\n public static void main(String[] args) {\n Calendar cal = Calendar.getInstance();\n System.out.println("वर्तमान समय: " + cal.getTime());\n\n // विशिष्ट दिनांक सेट करना\n cal.set(2025, Calendar.MARCH, 15);\n System.out.println("सेट की गई दिनांक: " + cal.getTime());\n\n // 7 दिन जोड़ना\n cal.add(Calendar.DAY_OF_MONTH, 7);\n System.out.println("एक सप्ताह बाद: " + cal.getTime());\n }\n}\n\nकमियां: महीनों की संख्या 0 से शुरू होती है (जनवरी = 0), म्यूटेबिलिटी, सरल फ़ॉर्मेटिंग का अभाव।
\n\n2. नया API: java.time (Java 8+)
\n\nJava 8 से शुरू करके, मानक लाइब्रेरी में पैकेज java.time जोड़ा गया, जो Joda-Time लाइब्रेरी के विचारों पर आधारित है। इसमें अपरिवर्तनीय (immutable) क्लासेस शामिल हैं, जो कोड को सुरक्षित और पूर्वानुमानित बनाती हैं।
2.1 LocalDate — केवल दिनांक
\nLocalDate बिना समय के दिनांक (वर्ष, महीना, दिन) का प्रतिनिधित्व करता है। जन्मदिन, कैलेंडर के लिए आदर्श।
import java.time.LocalDate;\nimport java.time.Month;\n\npublic class LocalDateExample {\n public static void main(String[] args) {\n // वर्तमान दिनांक\n LocalDate today = LocalDate.now();\n System.out.println("आज: " + today);\n\n // विशिष्ट दिनांक\n LocalDate specificDate = LocalDate.of(2025, Month.DECEMBER, 31);\n System.out.println("नया साल: " + specificDate);\n\n // दिन जोड़ना/घटाना\n LocalDate nextWeek = today.plusDays(7);\n System.out.println("एक सप्ताह बाद: " + nextWeek);\n }\n}\n\n2.2 LocalTime — केवल समय
\nLocalTime दिनांक से संबंधित हुए बिना समय (घंटे, मिनट, सेकंड, नैनोसेकंड) संग्रहीत करता है।
import java.time.LocalTime;\n\npublic class LocalTimeExample {\n public static void main(String[] args) {\n LocalTime now = LocalTime.now();\n System.out.println("वर्तमान समय: " + now);\n\n LocalTime meeting = LocalTime.of(14, 30);\n System.out.println("बैठक: " + meeting);\n\n // समय की तुलना\n if (now.isAfter(meeting)) {\n System.out.println("बैठक पहले ही हो चुकी है");\n }\n }\n}<