जावा में तिथियों के साथ कार्य: पुस्तकालय और उपकरण
तिथियों और समय के साथ कार्य करना किसी भी एप्लिकेशन में एक प्रमुख कार्य है। जावा में लंबे समय तक मानक क्लास java.util.Date और java.util.Calendar असुविधा, परिवर्तनशीलता और समय क्षेत्रों के खराब समर्थन के कारण आलोचना का विषय रहे। हालाँकि, Java 8 के आगमन के साथ स्थिति में मौलिक परिवर्तन आया। इस लेख में, हम जावा में तिथियों के साथ कार्य करने के लिए मुख्य पुस्तकालयों और उपकरणों पर चर्चा करेंगे, जो आपको स्वच्छ और विश्वसनीय कोड लिखने में मदद करेंगे।
1. मानक पुस्तकालय java.time (Java 8+)
Java 8 से शुरू करके, डेवलपर्स के लिए शक्तिशाली पैकेज java.time उपलब्ध है, जो ISO-8601 मानक पर आधारित है। यह तिथियों और समय के साथ कार्य करने का अनुशंसित तरीका है। मुख्य क्लास:
LocalDate— समय के बिना तिथि (वर्ष, महीना, दिन)।LocalTime— तिथि के बिना समय (घंटे, मिनट, सेकंड, नैनोसेकंड)।LocalDateTime— तिथि और समय का संयोजन।ZonedDateTime— समय क्षेत्र के साथ तिथि और समय।Instant— UTC में क्षण (मशीन समय के लिए)।DurationऔरPeriod— अंतराल के साथ कार्य करने के लिए।
उदाहरण: तिथि बनाना और फ़ॉर्मेट करना
import java.time.LocalDate;import java.time.format.DateTimeFormatter;
public class DateExample { public static void main(String[] args) { // वर्तमान तिथि LocalDate today = LocalDate.now(); System.out.println("आज: " + today);
// विशिष्ट तिथि बनाना LocalDate birthDate = LocalDate.of(1990, 5, 15); System.out.println("जन्म तिथि: " + birthDate);
// फ़ॉर्मेटिंग DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy"); String formatted = birthDate.format(formatter); System.out.println("फ़ॉर्मेट की गई तिथि: " + formatted);
// स्ट्रिंग पार्स करना String dateStr = "2023-12-31"; LocalDate parsedDate = LocalDate.parse(dateStr); System.out.println("पार्स किया गया: " + parsedDate); }}उदाहरण: तिथियों के बीच अंतर की गणना
import java.time.LocalDate;import java.time.Period;import java.time.temporal.ChronoUnit;
public class DateDifference { public static void main(String[] args) { LocalDate start = LocalDate.of(2020, 1, 1); LocalDate end = LocalDate.of(2024, 3, 15);
Period period = Period.between(start, end); System.out.println("अंतर: " + period.getYears() + " वर्ष, " + period.getMonths() + " महीने, " + period.getDays() + " दिन");
long daysBetween = ChronoUnit.DAYS.between(start, end); System.out.println("कुल दिन: " + daysBetween); }}2. Joda-Time (पुराने Java संस्करणों के लिए)
java.time के आगमन से पहले, Joda-Time पुस्तकालय वास्तविक मानक था। यह सुविधाजनक immutable-क्लास और समय क्षेत्रों के लिए समर्थन प्रदान करता था। यदि आप Java 7 या उससे नीचे के संस्करण के साथ काम कर रहे हैं, तो Joda-Time एक उत्कृष्ट विकल्प है।
कनेक्शन (Maven):
<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.12.7</version></dependency>उदाहरण: Joda-Time के साथ कार्य
import org.joda.time.DateTime;import org.joda.time.Days;import org.joda.time.format.DateTimeFormat;import org.joda.time.format.DateTimeFormatter;
public class JodaExample { public static void main(String[] args) { // वर्तमान तिथि और समय DateTime now = new DateTime(); System.out.println("अभी: " + now);
// तिथि बनाना DateTime specificDate =