Kotlin में दिनांक और समय के साथ कार्य करना: उन्नत तकनीकें और API

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

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

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

Kotlin में दिनांक और समय के साथ उन्नत कार्य

\n\n

Kotlin में आधुनिक विकास में, दिनांक और समय के साथ कार्य करना वर्तमान दिनांक प्रदर्शित करने से कहीं आगे निकल जाता है। उन्नत स्तर पर, समय क्षेत्रों को ध्यान में रखना, अवधियों के साथ जटिल गणना करना, गैर-मानक प्रारूपों को पार्स करना और वितरित प्रणालियों में टाइमस्टैम्प को संसाधित करना आवश्यक है। इस लेख में, हम प्रमुख लाइब्रेरी और तकनीकों पर चर्चा करेंगे जो आपको Kotlin में दिनांक और समय के साथ कार्य करने के लिए विश्वसनीय और कुशल कोड लिखने में मदद करेंगी।

\n\n

1. लाइब्रेरी का चयन: java.time बनाम kotlinx-datetime

\n\n

Kotlin Java के साथ पूरी तरह से संगत है, इसलिए आप शक्तिशाली java.time API (JSR-310) का उपयोग कर सकते हैं, जो नई परियोजनाओं के लिए मानक है। हालाँकि, मल्टीप्लेटफ़ॉर्म प्रोजेक्ट्स (KMP) के लिए JetBrains के kotlinx-datetime को चुनना बेहतर है।

\n\n

java.time (JVM)

\n

मुख्य वर्ग: LocalDate, LocalTime, LocalDateTime, ZonedDateTime, Instant, Duration, Period।

\n\n
import java.time.*\n\nfun main() {\n    val today = LocalDate.now()\n    val meetingTime = LocalDateTime.of(2025, 3, 15, 14, 30)\n    val zonedMeeting = ZonedDateTime.of(meetingTime, ZoneId.of("Europe/Moscow"))\n    println("मास्को में बैठक: $zonedMeeting")\n}
\n\n

kotlinx-datetime (Multiplatform)

\n

build.gradle.kts में निर्भरता जोड़ें:

\n
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1")
\n\n
import kotlinx.datetime.*\n\nfun main() {\n    val now = Clock.System.now()\n    val date = now.toLocalDateTime(TimeZone.of("Europe/Moscow")).date\n    println("आज: $date")\n}
\n\n

2. दिनांकों का पार्सिंग और फ़ॉर्मेटिंग

\n\n

सही पार्सिंग बाहरी डेटा के साथ कार्य करने का आधार है। आइए उन्नत तकनीकों पर नज़र डालें।

\n\n

गैर-मानक प्रारूपों के साथ पार्सिंग

\n\n
import java.time.LocalDateTime\nimport java.time.format.DateTimeFormatter\nimport java.time.format.DateTimeParseException\n\nfun parseCustomDate(dateString: String): LocalDateTime? {\n    val formatters = listOf(\n        DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"),\n        DateTimeFormatter.ofPattern("dd/MM/yyyy'T'HH:mm"),\n        DateTimeFormatter.ISO_LOCAL_DATE_TIME\n    )\n    for (formatter in formatters) {\n        try {\n            return LocalDateTime.parse(dateString, formatter)\n        } catch (e: DateTimeParseException) {\n            // अगला प्रयास करें\n        }\n    }\n    return null\n}\n\nfun main() {\n    println(parseCustomDate("2025-03-15 14:30:00")) // 2025-03-15T14:30\n    println(parseCustomDate("15/03/2025T14:30"))    // 2025-03-15T14:30\n}
\n\n

स्थानीयकृत फ़ॉर्मेटिंग

\n\n
import java.time.LocalDate\nimport java.time.format.DateTimeFormatter\nimport java.time.format.FormatStyle\nimport java.util.Locale\n\nfun main() {\n    val date = LocalDate.of(2025, 3, 15)\n    val usFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)\n        .withLocale(Locale.US)\n    val ruFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)\n        .withLocale(Locale("ru"))\n    println("USA: ${date.format(usFormatter)}")  // Saturday, March 15, 2025\n    println("RU:  ${date.format(ruFormatter)}")  // суббота, 15 марта 2025 г.\n}
\n\n

3. Duration और Period के साथ जटिल गणनाएँ

\n\n

Duration - सटीक समय अंतराल (घंटे, मिनट, सेकंड) के लिए, Period - कैलेंडर अवधियों (वर्ष, महीने, दिन) के लिए।

\n\n

व्यावसायिक तर्क के साथ दिनांकों के बीच अंतर

\n\n
import java.time.*\nimport java.time.temporal.ChronoUnit\n\nfun businessDaysBetween(start: LocalDate, end: LocalDate): Long {\n    var count = 0L\n    var current = start\n    while (current.isBefore(end)) {\n        if (current.dayOfWeek != DayOfWeek.SATURDAY && \n            current.dayOfWeek != DayOfWe                

ब्लॉग

पुस्तक अनुशंसाएँ