العمل مع التواريخ في Swift: Foundation و DateFormatter

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

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

ابدأ الدورة

ما هذا ولماذا هو مطلوب؟

Swift هي لغة برمجة حديثة من Apple لأنظمة iOS وmacOS وwatchOS وtvOS. العمل مع التواريخ هو أحد المهام الرئيسية في تطوير التطبيقات المحمولة وسطح المكتب: من عرض الوقت في الدردشات إلى حساب المواعيد النهائية في التطبيقات. لا توجد مكتبة منفصلة للتواريخ في Swift — كل الوظائف مدمجة في إطار العمل Foundation. يوفر هذا الإطار الفئات Date وDateFormatter وCalendar وDateComponents، والتي تسمح بإنشاء التواريخ وتنسيقها ومقارنتها والتعامل معها.

كيف يتم التثبيت؟

Foundation هو جزء من المكتبة القياسية لـ Swift، لذلك لا يلزم التثبيت. فقط قم باستيراد الوحدة في ملفك: import Foundation. للعمل مع التواريخ في مشاريع iOS/macOS (عبر Xcode)، لا حاجة لأي تبعيات إضافية.

الوظائف الأساسية

  • إنشاء تاريخ: Date() — التاريخ والوقت الحاليين؛ Date(timeIntervalSinceNow:) — تاريخ بعد N ثانية.
  • التنسيق: DateFormatter — تحويل التاريخ إلى سلسلة نصية (إخراج محلي) والعكس.
  • مكونات التاريخ: Calendar.current.dateComponents([.year, .month, .day], from: date) — استخراج السنة والشهر واليوم.
  • المقارنة: العوامل == و< و>، بالإضافة إلى compare().
  • التلاعب: Calendar.current.date(byAdding: .day, value: 7, to: date) — إضافة 7 أيام.

مثال على كود Swift (iOS/macOS)

import Foundation

// التاريخ الحاليlet now = Date()print("الآن: \\(now)")

// التنسيق إلى سلسلة نصية محليةlet formatter = DateFormatter()formatter.dateStyle = .longformatter.timeStyle = .shortformatter.locale = Locale(identifier: "ru_RU")let formatted = formatter.string(from: now)print("التاريخ المنسق: \\(formatted)")

// استخراج يوم الأسبوعlet calendar = Calendar.currentlet weekday = calendar.component(.weekday, from: now)print("يوم الأسبوع (1=الأحد): \\(weekday)")

// إضافة 3 أيامif let futureDate = calendar.date(byAdding: .day, value: 3, to: now) { print("بعد 3 أيام: \\(formatter.string(from: futureDate))")}

// تحليل سلسلة نصيةformatter.dateFormat = "yyyy-MM-dd"if let parsedDate = formatter.date(from: "2025-12-31") { print("تم التحليل: \\(parsedDate)")}

متى يتم الاستخدام؟

استخدم أدوات Foundation المدمجة دائمًا عندما تحتاج إلى العمل مع التواريخ في Swift: عرض الوقت في واجهة المستخدم، حساب الفرق بين التواريخ، إنشاء التقاويم، التذكيرات، المؤقتات، تسجيل الأحداث. بالنسبة للسيناريوهات المعقدة (مثل العمل مع المناطق الزمنية أو الأحداث المتكررة)، قم بدمج DateComponents وCalendar. توجد مكتبات خارجية بديلة (مثل SwiftDate)، ولكن بالنسبة لمعظم المشاريع، فإن Foundation كافية.

توصيات