Swift (iOS/macOS) में तिथियों के साथ कार्य करना: पुस्तकालयों का अवलोकन
\n\niOS और macOS के लिए विकास में तिथियों और समय के साथ कार्य करना सबसे सामान्य और साथ ही जटिल कार्यों में से एक है। मानक फ्रेमवर्क Foundation शक्तिशाली लेकिन हमेशा सहज न होने वाले उपकरण प्रदान करता है: Date, DateFormatter, Calendar, TimeInterval। हालाँकि, नियमित संचालन (स्ट्रिंग पार्सिंग, मानव-पठनीय अंतराल, स्थानीयकरण) को सरल बनाने के लिए विशेष पुस्तकालय मौजूद हैं। इस लेख में, हम मुख्य दृष्टिकोणों और लोकप्रिय उपकरणों का विश्लेषण करेंगे।
1. Foundation के अंतर्निहित साधन
\nतृतीय-पक्ष समाधानों को जोड़ने से पहले, मूल उपकरणों के साथ काम करना सीखना महत्वपूर्ण है। मुख्य वर्ग:
\n- \n
Date— समय में एक बिंदु (सेकंड की सटीकता के साथ)। \n DateFormatter— स्ट्रिंग को तिथि में और वापस रूपांतरित करना। \n Calendar— कैलेंडर इकाइयों (वर्ष, माह, दिन) के साथ कार्य करना। \n TimeInterval— तिथियों के बीच सेकंड में अंतर। \n
उदाहरण: तिथि फ़ॉर्मेटिंग
\nimport Foundation\n\nlet now = Date()\nlet formatter = DateFormatter()\nformatter.dateFormat = "yyyy-MM-dd HH:mm:ss"\nformatter.locale = Locale(identifier: "ru_RU")\nlet dateString = formatter.string(from: now)\nprint(dateString) // 2025-02-18 14:30:00\n\nउदाहरण: दिनों में अंतर की गणना
\nlet calendar = Calendar.current\nlet start = Date()\nlet end = calendar.date(byAdding: .day, value: 7, to: start)!\nlet components = calendar.dateComponents([.day], from: start, to: end)\nprint(components.day!) // 7\n\nये क्षमताएँ अधिकांश बुनियादी परिदृश्यों के लिए पर्याप्त हैं। लेकिन जैसे ही जटिल पार्सिंग या स्थानीयकरण की आवश्यकता होती है, कोड बोझिल हो जाता है।
\n\n2. DateHelper पुस्तकालय
\nDateHelper — एक हल्का पुस्तकालय (Swift Package Manager के माध्यम से उपलब्ध) जो Date में सुविधाजनक एक्सटेंशन जोड़ता है। मुख्य विशेषता मानव-पठनीय सापेक्ष तिथियाँ हैं।
स्थापना: Package.swift में निर्भरता https://github.com/melvitax/DateHelper जोड़ें।
उदाहरण: "3 घंटे पहले"
\nimport DateHelper\n\nlet pastDate = Date() - 3.hours\nprint(pastDate.toRelativeString()) // "3 hours ago"\n// स्थानीयकरण पर: print(pastDate.toRelativeString(locale: "ru"))\n\nपुस्तकालय कई आउटपुट प्रारूपों का समर्थन करता है: .short, .medium, .full। यह उन अनुप्रयोगों के लिए एक आदर्श विकल्प है जहाँ अपना स्वयं का पार्सर लिखे बिना "अभी", "कल", "2 सप्ताह पहले" दिखाने की आवश्यकता होती है।
3. SwiftDate — सबसे शक्तिशाली उपकरण
\nSwiftDate (लेखक: Daniele Margutti) वास्तव में Swift में तिथियों के साथ काम करने के लिए वास्तविक मानक है। इसमें शामिल हैं:
\n- \n
- स्वचालित प्रारूप पहचान के साथ स्ट्रिंग पार्सिंग। \n
- तिथियों में हेरफेर (घटकों को जोड़ना/घटाना)। \n
- किसी भी इकाई में अंतर की गणना। \n
- स्थानीयकरण (30+ भाषाओं के लिए समर्थन)। \n
- समय क्षेत्रों और कैलेंडर के साथ कार्य करना। \n
स्थापना: SPM या CocoaPods के माध्यम से।
\n\nउदाहरण: अज्ञात प्रारूप वाली स्ट्रिंग का पार्सिंग
\nimport SwiftDate\n\nlet dateString = "2025-02-18T14:30:00+03:00"\nif let date = dateString.toDate() {\n print(date.year) // 2025\n print(date.month) // 2\n print(date.toFormat("dd MMMM yyyy", locale: Locales.russian)) // "18 февраля 2025"\n}\n\nउदाहरण: मानव-पठनीय रूप में अंतराल प्राप्त करना
\nlet start = DateInRegion(Date())\nlet end = start + 2.hours + 30.minutes\nlet interval = start.toRelativeString(end, style: RelativeFormatter.defaultStyle())\nprint(interval) // "2 hours 30 minutes later"\n\nSwiftDate पुस्तकालय में भी
अनुशंसाएँ