जावा में तिथियों के साथ कार्य: java.time, Joda-Time और Apache Commons का अवलोकन

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

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

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

जावा में तिथियों के साथ कार्य: आधुनिक लाइब्रेरीज़ और उपकरणों का अवलोकन



जावा में डेवलपमेंट में तिथियों और समय के साथ कार्य सबसे सामान्य कार्यों में से एक है। लंबे समय तक, मानक क्लासेज़ java.util.Date और java.util.Calendar असुविधाजनक, mutable (परिवर्तनीय) और त्रुटियों के प्रति संवेदनशील थीं। सौभाग्य से, स्थिति बदल गई है। इस अवलोकन में, हम तीन मुख्य दृष्टिकोणों पर विचार करेंगे: अंतर्निहित पैकेज java.time, लाइब्रेरी Joda-Time और उपयोगिताएँ Apache Commons Lang।



1. java.time (Java 8+) — आधुनिक मानक



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



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

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


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

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

public class JavaTimeExample { public static void main(String[] args) { // वर्तमान तिथि और समय LocalDate today = LocalDate.now(); LocalTime now = LocalTime.now(); System.out.println("आज: " + today); System.out.println("अभी: " + now);

// विशिष्ट तिथि बनाना LocalDate birthDate = LocalDate.of(1990, Month.MAY, 15); System.out.println("जन्म तिथि: " + birthDate);

// समय क्षेत्रों के साथ कार्य ZonedDateTime berlinTime = ZonedDateTime.now(ZoneId.of("Europe/Berlin")); ZonedDateTime tokyoTime = ZonedDateTime.now(ZoneId.of("Asia/Tokyo")); System.out.println("बर्लिन में: " + berlinTime); System.out.println("टोक्यो में: " + tokyoTime);

// तिथियों के बीच अंतर long daysBetween = ChronoUnit.DAYS.between(birthDate, today); System.out.println("जन्मदिन से दिन: " + daysBetween);

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

// स्ट्रिंग पार्स करना LocalDate parsedDate = LocalDate.parse("2023-12-31"); System.out.println("पार्स किया गया: " + parsedDate); }}


2. Joda-Time — समय-परीक्षित विकल्प



Java 8 के आने से पहले, Joda-Time तिथियों के साथ कार्य के लिए वास्तविक मानक था। अब इसका उपयोग केवल legacy-प्रोजेक्ट्स में या Java के पुराने संस्करणों (8 से नीचे) के समर्थन की आवश्यकता होने पर उचित है।



मुख्य विशेषताएँ:

  • अपरिवर्तनीय (immutable) ऑब्जेक्ट — थ्रेड-सुरक्षा।
  • अनेक कैलेंडर प्रणालियों का समर्थन (इस्लामी, बौद्ध, आदि)।
  • सरल और सहज API।


Joda-Time के साथ कोड उदाहरण:

import org.joda.time.*;import org.joda.time.format.DateTimeFormat;import org.joda.time.format.DateTimeFormatter;

public class JodaTimeExample { public static void main(String[] args) { // वर्तमान तिथि और समय DateTime now = DateTime.now(); System.out.println("अभी: " + now);

// तिथि बनाना DateTime specificDate = new DateTime(2020, 6, 15, 10, 30, 0); System.out.println("विशिष्ट तिथि: " + specificDate);

// दिन जोड़ना DateTime nextW

अनुशंसाएँ