Swift (iOS/macOS) में तिथियों के साथ कार्य करना: पुस्तकालय और उपकरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Swift (iOS/macOS) में तिथियों के साथ कार्य करना: पुस्तकालयों का अवलोकन

\n\n

iOS और macOS के लिए विकास में तिथियों और समय के साथ कार्य करना सबसे सामान्य और साथ ही जटिल कार्यों में से एक है। मानक फ्रेमवर्क Foundation शक्तिशाली लेकिन हमेशा सहज न होने वाले उपकरण प्रदान करता है: Date, DateFormatter, Calendar, TimeInterval। हालाँकि, नियमित संचालन (स्ट्रिंग पार्सिंग, मानव-पठनीय अंतराल, स्थानीयकरण) को सरल बनाने के लिए विशेष पुस्तकालय मौजूद हैं। इस लेख में, हम मुख्य दृष्टिकोणों और लोकप्रिय उपकरणों का विश्लेषण करेंगे।

\n\n

1. Foundation के अंतर्निहित साधन

\n

तृतीय-पक्ष समाधानों को जोड़ने से पहले, मूल उपकरणों के साथ काम करना सीखना महत्वपूर्ण है। मुख्य वर्ग:

\n
    \n
  • Date — समय में एक बिंदु (सेकंड की सटीकता के साथ)।
  • \n
  • DateFormatter — स्ट्रिंग को तिथि में और वापस रूपांतरित करना।
  • \n
  • Calendar — कैलेंडर इकाइयों (वर्ष, माह, दिन) के साथ कार्य करना।
  • \n
  • TimeInterval — तिथियों के बीच सेकंड में अंतर।
  • \n
\n\n

उदाहरण: तिथि फ़ॉर्मेटिंग

\n
import 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

उदाहरण: दिनों में अंतर की गणना

\n
let 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\n

2. DateHelper पुस्तकालय

\n

DateHelper — एक हल्का पुस्तकालय (Swift Package Manager के माध्यम से उपलब्ध) जो Date में सुविधाजनक एक्सटेंशन जोड़ता है। मुख्य विशेषता मानव-पठनीय सापेक्ष तिथियाँ हैं।

\n\n

स्थापना: Package.swift में निर्भरता https://github.com/melvitax/DateHelper जोड़ें।

\n\n

उदाहरण: "3 घंटे पहले"

\n
import 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 सप्ताह पहले" दिखाने की आवश्यकता होती है।

\n\n

3. SwiftDate — सबसे शक्तिशाली उपकरण

\n

SwiftDate (लेखक: Daniele Margutti) वास्तव में Swift में तिथियों के साथ काम करने के लिए वास्तविक मानक है। इसमें शामिल हैं:

\n
    \n
  • स्वचालित प्रारूप पहचान के साथ स्ट्रिंग पार्सिंग।
  • \n
  • तिथियों में हेरफेर (घटकों को जोड़ना/घटाना)।
  • \n
  • किसी भी इकाई में अंतर की गणना।
  • \n
  • स्थानीयकरण (30+ भाषाओं के लिए समर्थन)।
  • \n
  • समय क्षेत्रों और कैलेंडर के साथ कार्य करना।
  • \n
\n\n

स्थापना: SPM या CocoaPods के माध्यम से।

\n\n

उदाहरण: अज्ञात प्रारूप वाली स्ट्रिंग का पार्सिंग

\n
import 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

उदाहरण: मानव-पठनीय रूप में अंतराल प्राप्त करना

\n
let 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\n

SwiftDate

अनुशंसाएँ