यह क्या है और इसकी आवश्यकता क्यों है?
Java प्रोग्रामिंग में दिनांक और समय के साथ काम करना सबसे सामान्य कार्यों में से एक है। मानक लाइब्रेरी java.time (Java 8 में शामिल) दिनांक, समय, समय क्षेत्र और अवधियों को संसाधित करने के लिए एक शक्तिशाली और सहज API प्रदान करती है। Java 8 से पहले, डेवलपर्स अक्सर तृतीय-पक्ष लाइब्रेरी Joda-Time का उपयोग करते थे, जो java.time के लिए प्रोटोटाइप बन गई। दोनों लाइब्रेरी पुराने java.util.Date और java.util.Calendar की समस्याओं का समाधान करती हैं: थ्रेड-सुरक्षा, ऑब्जेक्ट की अपरिवर्तनीयता और सुविधाजनक फ़ॉर्मेटिंग विधियाँ।
कैसे स्थापित करें?
java.time Java 8 और उसके बाद के संस्करणों में अंतर्निहित है — किसी स्थापना की आवश्यकता नहीं है। Joda-Time के लिए, Maven में निर्भरता जोड़ें:
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.12.5</version>
</dependency>Gradle के लिए: implementation 'joda-time:joda-time:2.12.5'.
मुख्य कार्य
- LocalDate, LocalTime, LocalDateTime — बिना समय क्षेत्र के दिनांक/समय के साथ काम करना।
- ZonedDateTime, OffsetDateTime — समय क्षेत्रों का ध्यान रखना।
- Period, Duration — दिनांकों और समय के बीच अंतर।
- DateTimeFormatter — लचीला फ़ॉर्मेटिंग और पार्सिंग।
- Instant — UTC में समय का एक क्षण।
Java में कोड का उदाहरण
import java.time.*;
import java.time.format.DateTimeFormatter;
public class DateExample {
public static void main(String[] args) {
// वर्तमान दिनांक
LocalDate today = LocalDate.now();
System.out.println("आज: " + today);
// एक विशिष्ट दिनांक बनाना
LocalDate specificDate = LocalDate.of(2025, Month.MARCH, 15);
System.out.println("विशिष्ट दिनांक: " + specificDate);
// दिनांकों के बीच अंतर
Period period = Period.between(specificDate, today);
System.out.println("अंतर: " + period.getYears() + " वर्ष, " + period.getMonths() + " महीने, " + period.getDays() + " दिन");
// फ़ॉर्मेटिंग
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");
String formatted = today.format(formatter);
System.out.println("फ़ॉर्मेट किया गया: " + formatted);
// स्ट्रिंग को पार्स करना
LocalDate parsed = LocalDate.parse("01.01.2024", formatter);
System.out.println("पार्स किया गया: " + parsed);
// समय और क्षेत्रों के साथ काम करना
ZonedDateTime zoned = ZonedDateTime.now(ZoneId.of("Europe/Moscow"));
System.out.println("मास्को समय: " + zoned);
}
}कब उपयोग करें
java.time Java 8+ पर सभी नई परियोजनाओं के लिए मुख्य विकल्प है। इसका उपयोग करें: आयु गणना, समय सीमा, टाइमस्टैम्प के साथ लॉग, कार्य शेड्यूलर, कैलेंडर और समय क्षेत्रों के साथ काम करने के लिए। Joda-Time पुरानी परियोजनाओं को समर्थन देने या यदि अतिरिक्त सुविधाओं की आवश्यकता हो, जैसे Interval या MutableDateTime, तो उपयोगी है। दोनों लाइब्रेरी पुराने Calendar की तुलना में कोड को काफी सरल बनाती हैं।