Kotlin में तिथियों के साथ कार्य करना: लाइब्रेरीज़ और टूल्स का अवलोकन
\n\nअधिकांश अनुप्रयोगों में तिथियों और समय के साथ कार्य करना एक प्रमुख कार्य है। Kotlin, एक आधुनिक मल्टीप्लेटफ़ॉर्म भाषा के रूप में, तिथियों के साथ कार्य करने के कई तरीके प्रदान करता है। इस लेख में, हम मुख्य लाइब्रेरीज़ और टूल्स पर चर्चा करेंगे जो Kotlin प्रोजेक्ट्स में तिथियों, समय, अंतरालों और समय क्षेत्रों को प्रभावी ढंग से प्रबंधित करने में आपकी सहायता करेंगे।
\n\n1. Java की मानक लाइब्रेरी: java.time
\n\nचूंकि Kotlin Java के साथ पूरी तरह से संगत है, आप शक्तिशाली लाइब्रेरी java.time (JSR-310) का उपयोग कर सकते हैं, जो Java 8 में आई थी। यह सर्वर और Android अनुप्रयोगों (API 26+ से शुरू) के लिए अनुशंसित तरीका है।
मुख्य वर्ग:
\n- \n
LocalDate— समय के बिना तिथि (वर्ष, माह, दिन)। \n LocalTime— तिथि के बिना समय। \n LocalDateTime— समय क्षेत्र के बिना तिथि और समय। \n ZonedDateTime— समय क्षेत्र के साथ तिथि और समय। \n Instant— UTC में समय का क्षण (मशीन का समय)। \n DurationऔरPeriod— समय अंतराल। \n
उपयोग का उदाहरण:
\nimport java.time.*\n\nfun main() {\n // वर्तमान तिथि और समय\n val now = LocalDateTime.now()\n println("अभी: $now")\n\n // एक विशिष्ट तिथि बनाना\n val birthDate = LocalDate.of(1990, Month.JUNE, 15)\n println("जन्म तिथि: $birthDate")\n\n // समय क्षेत्रों के साथ कार्य\n val zonedDateTime = ZonedDateTime.now(ZoneId.of("Europe/Moscow"))\n println("मास्को में समय: $zonedDateTime")\n\n // तिथियों के बीच अंतर\n val from = LocalDate.of(2023, 1, 1)\n val to = LocalDate.now()\n val daysBetween = ChronoUnit.DAYS.between(from, to)\n println("नए साल से दिन: $daysBetween")\n\n // फ़ॉर्मेटिंग\n val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm")\n println("फ़ॉर्मेट की गई तिथि: ${now.format(formatter)}")\n}\n\n\nलाभ: अंतर्निहित, विश्वसनीय, सभी सुविधाओं का पूर्ण समर्थन।
\nकमियाँ: डीसुगरिंग के बिना पुराने Android (API 26 से पहले) पर समर्थित नहीं।
\n\n2. kotlinx-datetime (JetBrains द्वारा मल्टीप्लेटफ़ॉर्म लाइब्रेरी)
\n\nमल्टीप्लेटफ़ॉर्म प्रोजेक्ट्स (KMP) के लिए, JetBrains ने kotlinx-datetime लाइब्रेरी बनाई है। यह सभी प्लेटफ़ॉर्म (JVM, Native, JS) के लिए एक एकीकृत API प्रदान करती है।
मुख्य वर्ग:
\n- \n
Instant— UTC में समय का क्षण। \n LocalDateTime— समय क्षेत्र के बिना तिथि+समय। \n LocalDateऔरLocalTime। \n DateTimePeriodऔरDatePeriod— अंतराल। \n TimeZone— समय क्षेत्र। \n
उपयोग का उदाहरण:
\nimport kotlinx.datetime.*\n\nfun main() {\n // वर्तमान क्षण\n val now = Clock.System.now()\n println("वर्तमान UTC: $now")\n\n // स्थानीय समय में रूपांतरण\n val localDateTime = now.toLocalDateTime(TimeZone.currentSystemDefault())\n println("स्थानीय समय: $localDateTime")\n\n // तिथि बनाना\n val date = LocalDate(2024, 12, 25)\n println("तिथि: $date")\n\n // तिथियों के बीच अंतर\n val start = LocalDateTime(2024, 1, 1, 0, 0)\n val end = LocalDateTime(2024, 12, 31, 23, 59)\n val period = start.periodUntil(end, DateTimeUnit.DAY)\n println("बीच के दिन: $period")\n\n // फ़ॉर्मेटिंग (अलग लाइब्रेरी या मैन्युअल की आवश्यकता)\n println("वर्ष: ${localDateTime.year}, माह: ${localDateTime.monthNumber}")\n}\n\n\nलाभ: मल्टीप्लेटफ़ॉर्म, हल्का, आधिकारिक समर्थन।
\nकमियाँ: सीमित फ़ॉर्मेटिंग क्षमताएँ (कोई अंतर्निहित DateTimeFormatter नहीं)।