Kotlin में दिनांकों के साथ कार्य: लाइब्रेरी और उपकरणों का अवलोकन
दिनांक और समय का प्रसंस्करण किसी भी एप्लिकेशन में मुख्य कार्यों में से एक है: ईवेंट लॉग करने से लेकर डेडलाइन की गणना और कैलेंडर प्रदर्शित करने तक। Kotlin में, JVM के ऊपर काम करने वाली (और मल्टीप्लेटफ़ॉर्म प्रोजेक्ट्स का समर्थन करने वाली) भाषा के रूप में, डेवलपर के पास कई शक्तिशाली लाइब्रेरी उपलब्ध हैं। इस लेख में, हम तीन मुख्य दृष्टिकोणों पर विचार करेंगे: kotlinx-datetime (मल्टीप्लेटफ़ॉर्म के लिए अनुशंसित), java.time (JVM/Android के लिए) और Joda-Time (पुराने प्रोजेक्ट्स के लिए प्रासंगिक प्रसिद्ध लाइब्रेरी)।
1. kotlinx-datetime — आधिकारिक मल्टीप्लेटफ़ॉर्म लाइब्रेरी
kotlinx-datetime JetBrains की एक आधुनिक लाइब्रेरी है, जो विशेष रूप से Kotlin Multiplatform के लिए बनाई गई है। यह सभी प्लेटफ़ॉर्म (JVM, JS, Native) पर दिनांकों, समय, समय क्षेत्रों और अवधियों के साथ कार्य करने के लिए एक एकीकृत API प्रदान करती है।
स्थापना (Gradle)
dependencies { implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1")}मुख्य वर्ग और उदाहरण
Instant— समय का एक क्षण (UTC)।LocalDateTime— बिना समय क्षेत्र के दिनांक+समय।LocalDate— केवल दिनांक।LocalTime— केवल समय।TimeZone— समय क्षेत्र।
import kotlinx.datetime.*
fun main() { // UTC में वर्तमान क्षण val now: Instant = Clock.System.now() println("Now UTC: $now")
// स्थानीय समय में रूपांतरण (सिस्टम समय क्षेत्र) val localDateTime: LocalDateTime = now.toLocalDateTime(TimeZone.currentSystemDefault()) println("Local: $localDateTime")
// दिनांकों के साथ कार्य val today: LocalDate = localDateTime.date val tomorrow: LocalDate = today.plus(1, DateTimeUnit.DAY) println("Tomorrow: $tomorrow")
// दिनांकों के बीच अंतर val daysBetween = tomorrow.daysUntil(today) println("Days between: $daysBetween") // -1
// स्ट्रिंग का पार्सिंग val parsedDate = LocalDate.parse("2025-03-15") println("Parsed: $parsedDate")}2. java.time (ThreeTen-Backport) — JVM और Android के लिए मानक
Java 8 से शुरू होकर, मानक लाइब्रेरी में java.time पैकेज (JSR-310) शामिल किया गया। Android API < 26 के लिए ThreeTen-Backport (या Android के लिए ThreeTenABP) का उपयोग किया जाता है। Kotlin इस API के साथ पूरी तरह से संगत है।
स्थापना (minSdk < 26 वाले Android के लिए)
dependencies { implementation("org.threeten:threetenbp:1.6.9")}उदाहरण
import java.time.*
fun main() { // वर्तमान दिनांक और समय val now = LocalDateTime.now() println("Now: $now")
// एक विशिष्ट दिनांक बनाना val date = LocalDate.of(2025, Month.DECEMBER, 25) println("Christmas: $date")
// फ़ॉर्मेटिंग val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm") val formatted = now.format(formatter) println("Formatted: $formatted")
// दिनांकों के बीच अंतर val start = LocalDate.of(2025, 1, 1) val end = LocalDate.of(2025, 12, 31) val days = ChronoUnit.DAYS.between(start, end) println("Days in 2025: $days") // 364}3. Joda-Time — समय-परीक्षित लाइब्रेरी
Joda-Time java.time के आगमन से पहले वास्तविक मानक थी। आज इसका उपयोग मुख्य रूप से legacy प्रोजेक्ट्स में किया जाता है। लाइब्रेरी समृद्ध कार्यक्षमता प्रदान करती है, लेकिन इसे पुराना माना जाता है — java.time या kotlinx-datetime पर माइग्रेट करने की अनुशंसा की जाती है।
स्थापना
dependencies { implementation("joda-time:joda-time:2.12.7")}उदाहरण
import org.joda.time.*import org.joda.time.format.DateTimeFormat
fun main() { val now = DateTime.now() println("Now: $now")
// अतिरिक्त