العمل مع التواريخ في Kotlin: المكتبات والأدوات للتطوير

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

العمل مع التواريخ في Kotlin: نظرة عامة على المكتبات والأدوات



العمل مع التواريخ والوقت هو أحد المهام الأساسية في التطوير الحديث. Kotlin، كونه لغة حديثة، يوفر عدة طرق قوية لإدارة التواريخ. في هذه المقالة، سنستعرض المكتبات والنهج الرئيسية التي ستساعدك على العمل بكفاءة مع التواريخ في مشاريع Kotlin، بما في ذلك تطوير Android وتطبيقات الخادم.



1. المكتبة القياسية java.time (Java 8+)



بدءًا من Java 8، حصل المطورون على إمكانية الوصول إلى واجهة برمجة تطبيقات مُعاد تصميمها بالكامل للعمل مع التواريخ — java.time. نظرًا لأن Kotlin متوافق تمامًا مع Java، يمكنك استخدام هذه الأداة القوية مباشرة. هذه هي الطريقة الأكثر شيوعًا لتطبيقات الخادم في Kotlin.



الفئات الرئيسية:

  • LocalDate — تاريخ بدون وقت (سنة، شهر، يوم)
  • LocalTime — وقت بدون تاريخ
  • LocalDateTime — تاريخ ووقت بدون منطقة زمنية
  • ZonedDateTime — تاريخ ووقت مع منطقة زمنية
  • Instant — لحظة زمنية في UTC
  • Duration و Period — للعمل مع الفترات الزمنية


import java.time.LocalDateimport java.time.LocalDateTimeimport java.time.format.DateTimeFormatter

fun main() { // التاريخ الحالي val today = LocalDate.now() println("اليوم: $today")

// إنشاء تاريخ محدد val birthDate = LocalDate.of(1990, 5, 15) println("تاريخ الميلاد: $birthDate")

// التنسيق val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy") val formatted = today.format(formatter) println("التاريخ المنسق: $formatted")

// تحليل سلسلة نصية val parsedDate = LocalDate.parse("2024-01-01") println("التاريخ المُحلل: $parsedDate")

// العمل مع التاريخ والوقت val now = LocalDateTime.now() println("الآن: $now")}


2. kotlinx-datetime — المكتبة الرسمية من JetBrains



للمشاريع التي تستخدم Kotlin Multiplatform، فإن المكتبة القياسية kotlinx-datetime هي الخيار الأفضل. توفر واجهة برمجة تطبيقات موحدة لجميع المنصات (JVM, JS, Native, Android).



الإضافة (build.gradle.kts):

dependencies {    implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1")}


الإمكانيات الرئيسية:

  • Instant — لحظة زمنية
  • LocalDateTime — تاريخ ووقت محلي
  • LocalDate — تاريخ محلي
  • LocalTime — وقت محلي
  • TimeZone — المناطق الزمنية
  • DateTimePeriod — فترة زمنية


import kotlinx.datetime.*

fun main() { // التاريخ والوقت الحاليين val now = Clock.System.now() println("اللحظة الحالية: $now")

// التحويل إلى مكونات محلية val localDateTime = now.toLocalDateTime(TimeZone.currentSystemDefault()) println("الوقت المحلي: $localDateTime")

// إنشاء تاريخ val date = LocalDate(2024, 12, 25) println("التاريخ: $date")

// التنسيق val formatted = localDateTime.toString() println("التمثيل النصي: $formatted")

// التحليل val parsed = Instant.parse("2024-01-01T12:00:00Z") println("Instant المُحلل: $parsed")

// العمل مع المناطق الزمنية val moscowTime = now.toLocalDateTime(TimeZone.of("Europe/Moscow")) println("توقيت موسكو: $moscowTime")}


3. ThreeTenABP — للتوافق العكسي مع Android



إذا كان تطبيقك يدعم Android API أقل من 26 (Android 8.0)، فلا يمكنك استخدام java.time مباشرة. في هذه الحالة، تأتي مكتبة ThreeTenABP<

توصيات