0Pricing
Swift Academy · درس

المناطق الزمنية والمحليات

تعامل بشكل صحيح مع اختلافات المناطق والمحليات.

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

المناطق الزمنية وإعدادات اللغة والمنطقة

تُعرض لحظة Date نفسها بشكل مختلف حول العالم. ويحدد كل من TimeZone وLocale كيفية تفسيرها وعرضها.

أساسيات TimeZone

يمثل TimeZone إزاحةً عن UTC بالإضافة إلى قواعد التوقيت الصيفي. وتمثل TimeZone.current المنطقة الزمنية للجهاز.

import Foundation

let tz = TimeZone.current
print("Identifier present: \(!tz.identifier.isEmpty)")

إنشاء منطقة زمنية محددة

أنشئوا منطقة زمنية مسماة باستخدام TimeZone(identifier:)، مثل "America/New_York" أو "Europe/Istanbul".

import Foundation

if let tokyo = TimeZone(identifier: "Asia/Tokyo") {
    print("Tokyo offset seconds: \(tokyo.secondsFromGMT())")
}

الإزاحات عن GMT

تعطي secondsFromGMT(for:) الإزاحة الحالية، التي قد تتغير خلال العام بسبب التوقيت الصيفي.

import Foundation

let utc = TimeZone(identifier: "UTC")!
print("UTC offset is zero: \(utc.secondsFromGMT() == 0)")

تأثير المناطق الزمنية في التقاويم

عيّنوا timeZone الخاص بالتقويم حتى تستخدم حسابات الأيام والساعات تلك المنطقة بدلًا من الإعداد الافتراضي للجهاز.

import Foundation

var cal = Calendar.current
cal.timeZone = TimeZone(identifier: "UTC")!
let hour = cal.component(.hour, from: Date())
print("Hour in UTC between 0 and 23: \(0...23 ~= hour)")

المناطق الزمنية في التنسيق

يمكن أن يحتوي Date.FormatStyle على منطقة زمنية محددة، بحيث تعكس المخرجات تلك المنطقة بغض النظر عن إعدادات الجهاز.

import Foundation

let style = Date.FormatStyle(date: .omitted, time: .shortened)
    .timeZone(TimeZone(identifier: "UTC")!)
let s = Date().formatted(style)
print(!s.isEmpty)

أساسيات Locale

تلتقط Locale اللغة والأعراف الإقليمية، مثل أسماء الأشهر وأول يوم في الأسبوع وترتيب الأرقام والتواريخ.

import Foundation

let locale = Locale.current
print("Has identifier: \(!locale.identifier.isEmpty)")

إنشاء Locale

أنشئوا إعدادات لغة ومنطقة محددة باستخدام Locale(identifier:)، مثل "fr_FR" أو "tr_TR".

import Foundation

let french = Locale(identifier: "fr_FR")
print("French locale id: \(french.identifier)")

تغيير Locale للمخرجات

يؤدي تطبيق إعدادات اللغة والمنطقة على نمط تنسيق إلى تغيير أسماء الأشهر وترتيبها. ويُعرض التاريخ نفسه بشكل مختلف في كل لغة.

import Foundation

let now = Date()
let style = Date.FormatStyle(date: .long, time: .omitted)
    .locale(Locale(identifier: "en_US"))
print(!now.formatted(style).isEmpty)

Locale وCalendar معًا

تؤثر إعدادات اللغة والمنطقة أيضًا في أول أيام الأسبوع وترقيم الأسابيع في التقويم. اجمعوا بين المنطقة الزمنية وإعدادات اللغة والمنطقة والتقويم للحصول على نتائج صحيحة تمامًا.

import Foundation

var cal = Calendar(identifier: .gregorian)
cal.locale = Locale(identifier: "en_US")
print("First weekday: \(cal.firstWeekday)")

تخزين UTC وعرض التوقيت المحلي

أفضل ممارسة هي تخزين التواريخ وإرسالها بتوقيت UTC، ثم تحويلها إلى المنطقة الزمنية وإعدادات اللغة والمنطقة الخاصتين بالمستخدم عند العرض فقط.

import Foundation

let instant = Date()
let utcStyle = Date.FormatStyle(date: .numeric, time: .standard)
    .timeZone(TimeZone(identifier: "UTC")!)
print("UTC display ready: \(!instant.formatted(utcStyle).isEmpty)")

تحقق سريع

ما الطريقة الموصى بها للتعامل مع التواريخ عبر المناطق المختلفة؟

مراجعة

يحدد TimeZone إزاحة UTC وقواعد التوقيت الصيفي، بينما يتحكم Locale في اللغة والتنسيق الإقليمي. ويرتبط كلاهما بالتقاويم وأنماط التنسيق. خزّنوا التواريخ بتوقيت UTC، وحوّلوها إلى المنطقة الزمنية وإعدادات اللغة والمنطقة المحليتين عند العرض فقط. وبهذا يكتمل مقرر التواريخ والتقاويم.

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

هل درس «المناطق الزمنية والمحليات» مجاني؟

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

ماذا ستتعلم في «المناطق الزمنية والمحليات»؟

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

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

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

كم من الوقت يستغرق درس «المناطق الزمنية والمحليات»؟

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

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

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

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

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