परिचय
दिनांक और समय के साथ काम करना आधुनिक डेवलपमेंट में सबसे सामान्य कार्यों में से एक है। चाहे वह इवेंट लॉगिंग हो, समय सीमा की गणना हो, कैलेंडर प्रदर्शित करना हो या एप्लिकेशन का अंतर्राष्ट्रीयकरण करना हो, Kotlin डेवलपर को समय डेटा को सही ढंग से संभालने में सक्षम होना चाहिए। इस लेख में, हम विस्तार से जानेंगे कि Kotlin में दिनांक और समय के साथ कैसे काम करें, आधुनिक java.time API का उपयोग करते हुए, जो Java 8 से उपलब्ध है और Kotlin के साथ पूरी तरह से संगत है। आप प्रमुख क्लासेस, फ़ॉर्मेटिंग, पार्सिंग, टाइम ज़ोन के साथ काम करने और व्यावहारिक उदाहरणों के बारे में जानेंगे जो आपको स्वच्छ और विश्वसनीय कोड लिखने में मदद करेंगे।
दिनांक और समय के साथ काम करने के लिए मुख्य क्लासेस
Kotlin में, Java की तरह ही, दिनांक और समय के साथ मुख्य कार्य java.time पैकेज पर आधारित है। यह पैकेज पुराने java.util.Date और java.util.Calendar को बदलने के लिए बनाया गया था। यह अपरिवर्तनीय (immutable) और थ्रेड-सेफ क्लासेस प्रदान करता है। आइए उनमें से सबसे महत्वपूर्ण पर नज़र डालें।
LocalDate — समय के बिना दिनांक
LocalDate क्लास समय और टाइम ज़ोन को ध्यान में रखे बिना एक दिनांक (वर्ष, महीना, दिन) का प्रतिनिधित्व करता है। यह जन्मदिन, छुट्टियों या इवेंट की तारीखों के लिए एकदम सही है।
import java.time.LocalDate
fun main() {
// वर्तमान दिनांक
val today: LocalDate = LocalDate.now()
println("आज: $today") // आउटपुट: 2025-04-11
// विशिष्ट दिनांक
val specificDate: LocalDate = LocalDate.of(2025, 12, 25)
println("क्रिसमस: $specificDate")
// दिन जोड़ना
val nextWeek: LocalDate = today.plusDays(7)
println("एक सप्ताह बाद: $nextWeek")
}
LocalTime — दिनांक के बिना समय
यदि आपको केवल समय (घंटे, मिनट, सेकंड, नैनोसेकंड) चाहिए, तो LocalTime का उपयोग करें।
import java.time.LocalTime
fun main() {
val now: LocalTime = LocalTime.now()
println("वर्तमान समय: $now")
val meetingTime: LocalTime = LocalTime.of(14, 30)
println("मीटिंग का समय: $meetingTime")
val oneHourLater: LocalTime = now.plusHours(1)
println("एक घंटे बाद: $oneHourLater")
}
LocalDateTime — दिनांक और समय एक साथ
यह LocalDate और LocalTime का संयोजन है। टाइम ज़ोन से बंधे बिना समय के एक पल को संग्रहीत करने के लिए यह सबसे लोकप्रिय क्लास है।
import java.time.LocalDateTime
fun main() {
val currentDateTime: LocalDateTime = LocalDateTime.now()
println("अभी: $currentDateTime")
val newYear: LocalDateTime = LocalDateTime.of(2026, 1, 1, 0, 0)
println("नया साल: $newYear")
}
ZonedDateTime और Instant — टाइम ज़ोन के साथ काम करना
ZonedDateTime LocalDateTime में टाइम ज़ोन (ZoneId) की जानकारी जोड़ता है। Instant UTC में समय के एक पल (मशीन का समय) का प्रतिनिधित्व करता है।
import java.time.ZonedDateTime
import java.time.ZoneId
import java.time.Instant
fun main() {
// किसी विशिष्ट टाइम ज़ोन में समय
val moscowTime: ZonedDateTime = ZonedDateTime.now(ZoneId.of("Europe/Moscow"))
println("मास्को में समय: $moscowTime")
// UTC में वर्तमान पल
val instant: Instant = Instant.now()
println("UTC टाइमस्टैम्प: $instant")
}
दिनांकों का फ़ॉर्मेटिंग और पार्सिंग
दिनांक को स्ट्रिंग में बदलने (फ़ॉर्मेटिंग) और स्ट्रिंग को दिनांक में बदलने (पार्सिंग) के लिए DateTimeFormatter क्लास का उपयोग किया जाता है। यह आपको कोई भी पैटर्न निर्दिष्ट करने की अनुमति देता है।
दिनांक को स्ट्रिंग में फ़ॉर्मेट करना
import java.time.LocalDate
import java.time.format.DateTimeFormatter
fun main() {
val date = LocalDate.now()
val formatter: DateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy")
val formattedDate: String = date.format(formatter)
println("फ़ॉर्मेट की गई दिनांक: $formattedDate") // आउटपुट: 11.04.2025
// पैटर्न के अन्य उदाहरण
val formatter2 = DateTimeFormat
```