0Pricing
Swift Academy · درس

تنسيق التواريخ

اعرض التواريخ باستخدام واجهة التنسيق الحديثة.

تنسيق التواريخ درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

تنسيق التواريخ

قيم Date الخام ليست سهلة القراءة للبشر. وتحول واجهة Swift الحديثة FormatStyle هذه القيم إلى سلاسل نصية مترجمة بوضوح.

الطريقة formatted()

يمنح استدعاء .formatted() على تاريخ سلسلة نصية افتراضية مناسبة لإعدادات لغة المستخدم ومنطقته.

import Foundation

let now = Date()
let text = now.formatted()
print("Produced a string: \(!text.isEmpty)")

Date.FormatStyle

مرّروا Date.FormatStyle للتحكم في الأجزاء التي تظهر، مع اختيار نمطي التاريخ والوقت بشكل مستقل.

import Foundation

let now = Date()
let s = now.formatted(date: .abbreviated, time: .omitted)
print("Has date only: \(!s.isEmpty)")

أنماط التاريخ والوقت

تقبل المعلمتان date: وtime: القيم .full أو .long أو .abbreviated أو .numeric أو .omitted.

import Foundation

let now = Date()
let full = now.formatted(date: .complete, time: .shortened)
print(!full.isEmpty)

التخصيص باستخدام المكوّنات

يتيح النمط .dateTime تركيب الحقول التي تريدونها بالضبط، مثل .year().month().day().

import Foundation

let now = Date()
let s = now.formatted(.dateTime.year().month().day())
print("Custom fields: \(!s.isEmpty)")

اختيار عرض الحقل

يقبل كل مكوّن خيارات، مثل .month(.wide) لعرض الاسم كاملًا، أو .month(.twoDigits) لعرضه بصيغة رقمية.

import Foundation

let now = Date()
let s = now.formatted(.dateTime.month(.wide).year())
print(!s.isEmpty)

الوقت فقط

ركّبوا حقول الوقت فقط عندما يكون التاريخ مفهومًا ضمنًا، مثل .hour().minute().

import Foundation

let now = Date()
let t = now.formatted(.dateTime.hour().minute())
print("Time string: \(!t.isEmpty)")

التنسيق النسبي

ينتج RelativeFormatStyle عبارات مثل "خلال ساعتين" أو "أمس" نسبةً إلى الوقت الحالي.

import Foundation

let soon = Date().addingTimeInterval(3600)
let rel = soon.formatted(.relative(presentation: .named))
print("Relative phrase produced: \(!rel.isEmpty)")

ISO 8601

استخدموا .formatted(.iso8601) عند الحاجة إلى مخرجات قابلة للقراءة آليًا، فهو تنسيق التبادل القياسي لواجهات API.

import Foundation

let now = Date()
let iso = now.formatted(.iso8601)
print("Contains T separator: \(iso.contains("T"))")

إعادة تحليل السلاسل النصية

أنماط التنسيق قابلة للعكس؛ إذ يمكنكم تحليل سلسلة نصية إلى قيمة Date باستخدام استراتيجية المطابقة.

import Foundation

let input = "2024-05-30T12:00:00Z"
if let date = try? Date(input, strategy: .iso8601) {
    print("Parsed: \(date.timeIntervalSince1970 > 0)")
}

FormatStyle مقارنةً بـ DateFormatter

واجهة FormatStyle الجديدة آمنة من ناحية الأنواع وأسهل وأسرع في الكتابة من DateFormatter الأقدم؛ لذا يُفضّل استخدامها في الشيفرة الجديدة.

import Foundation

let now = Date()
print(now.formatted(date: .long, time: .omitted).isEmpty == false)

تحقق سريع

أي استدعاء يعرض التاريخ مع إخفاء الوقت؟

مراجعة

تنسّق واجهة FormatStyle التواريخ باستخدام .formatted()، وأنماط date:/time: القابلة للتهيئة، وحقول .dateTime القابلة للتركيب، والعبارات النسبية، وISO 8601. وهي قابلة للعكس لتحليل السلاسل النصية، ويُفضّل استخدامها بدلًا من DateFormatter. التالي: المناطق الزمنية وإعدادات اللغة والمنطقة.

الأسئلة الشائعة

هل درس «تنسيق التواريخ» مجاني؟

نعم — نص درس «تنسيق التواريخ» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «تنسيق التواريخ»؟

اعرض التواريخ باستخدام واجهة التنسيق الحديثة. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «تنسيق التواريخ»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. نوع Date والفواصل الزمنية
  2. ‏Calendar و DateComponents
  3. تنسيق التواريخ
  4. المناطق الزمنية والمحليات
← العودة إلى Swift Academy