Java में डेट्स के साथ काम: लाइब्रेरीज़ और टूल्स की समीक्षा

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Java में डेट्स के साथ काम: लाइब्रेरीज़ और टूल्स की समीक्षा

Java में डेवलपमेंट के दौरान डेट और टाइम के साथ काम करना सबसे आम कार्यों में से एक है। लंबे समय तक, स्टैंडर्ड क्लासेज़ java.util.Date और java.util.Calendar अपनी गैर-सहजता, म्यूटेबिलिटी और थ्रेड-सेफ्टी की समस्याओं के कारण काफी आलोचना का विषय रहीं। हालांकि, Java 8 के आने के बाद स्थिति पूरी तरह बदल गई। इस समीक्षा में, हम Java में डेट्स के साथ काम करने के लिए मुख्य लाइब्रेरीज़, उनकी खूबियों और उपयोग के उदाहरणों पर नज़र डालेंगे।

1. java.time (JSR-310) — स्टैंडर्ड API

Java 8 से शुरू करते हुए, पैकेज java.time डेट और टाइम के साथ काम करने का प्रमुख टूल है। इसे Joda-Time के लेखक स्टीफन कोलबर्न के नेतृत्व में विकसित किया गया था और इसमें सर्वोत्तम प्रथाओं को शामिल किया गया है।

मुख्य क्लासेज़:

  • LocalDate — बिना समय के डेट (साल, महीना, दिन)।
  • LocalTime — बिना डेट के समय (घंटे, मिनट, सेकंड, नैनोसेकंड)।
  • LocalDateTime — बिना टाइम ज़ोन के डेट और समय।
  • ZonedDateTime — टाइम ज़ोन के साथ डेट और समय।
  • Instant — UTC में समय का एक पल (मशीन-पठनीय प्रतिनिधित्व)।
  • Duration और Period — समय अंतराल के साथ काम करने के लिए।

उपयोग का उदाहरण:

import java.time.*;
import java.time.format.DateTimeFormatter;

public class JavaTimeExample {
    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);

        // समय के साथ काम
        LocalTime now = LocalTime.now();
        LocalTime meetingTime = LocalTime.of(14, 30);
        System.out.println("मीटिंग का समय: " + meetingTime);

        // फ़ॉर्मेटिंग
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm");
        LocalDateTime event = LocalDateTime.of(2025, 12, 31, 23, 59);
        String formatted = event.format(formatter);
        System.out.println("फ़ॉर्मेट किया गया: " + formatted);

        // डेट्स के बीच अंतर
        Period period = Period.between(today, specificDate);
        System.out.println("15 मार्च तक दिन: " + period.getDays());
    }
}

लाभ: JDK में बिल्ट-इन, थ्रेड-सेफ, इम्यूटेबल ऑब्जेक्ट्स, समृद्ध API, सभी टाइम ज़ोन का समर्थन।

2. Joda-Time

java.time के आने से पहले, Joda-Time ही Java में डेट्स के साथ काम करने का डी-फैक्टो मानक था। आज इसका उपयोग केवल पुराने प्रोजेक्ट्स (Java 8 से पहले) में ही उचित है, क्योंकि डेवलपर्स java.time पर माइग्रेट करने की सलाह देते हैं।

उदाहरण:

import org.joda.time.DateTime;
import org.joda.time.Days;
import org.joda.time.LocalDate;

public class JodaTimeExample {
    public static void main(String[] args) {
        // वर्तमान डेट
        LocalDate today = LocalDate.now();
        DateTime now = DateTime.now();

        // डेट्स के बीच अंतर
        LocalDate start = new LocalDate(2025, 1, 1);
        LocalDate end = new LocalDate(2025, 12, 31);
        int days = Days.daysBetween(start, end).getDays();
        System.out.println("बीच के दिन: " + days);
    }
}

कमियां: बाहरी डिपेंडेंसी की आवश्यकता, सक्रिय रूप से अपडेट नहीं होती, java.time की तुलना में कम कार्यक्षमता।

3. Apache Commons Lang 3

लाइब्रेरी org.apache.commons.lang3.time डेट्स के साथ काम करने के लिए सुविधाजनक यूटिलिटीज़ प्रदान करती है, विशेष रूप से फ़ॉर्मेटिंग, पार्सिंग और गणनाओं के लिए।

लोकप्रिय क्लासेज़:

  • DateUtils — डेट्स को राउंड करने, ट्रंकेट करने और तुलना करने के तरीके।
  • DateFormatUtils — फ़ॉर्मेटिंग और पार्सिंग के लिए उपयोगी मेथड्स।

अनुशंसाएँ