Swift (iOS/macOS) में तिथियों के साथ कार्य: लाइब्रेरीज़ और उपकरणों का अवलोकन
Apple पारिस्थितिकी तंत्र में तिथियों और समय के साथ कार्य पारंपरिक रूप से Foundation फ्रेमवर्क के माध्यम से कार्यान्वित किया जाता है। हालाँकि, जटिल परिदृश्यों (गैर-मानक प्रारूपों का पार्सिंग, सापेक्ष तिथियों के साथ कार्य, विभिन्न समय क्षेत्रों में हेरफेर) के लिए, डेवलपर्स अक्सर तृतीय-पक्ष लाइब्रेरीज़ का सहारा लेते हैं। इस लेख में, हम Swift की अंतर्निहित क्षमताओं और तिथियों को संसाधित करने के लिए लोकप्रिय उपकरणों दोनों पर विचार करेंगे।
1. Foundation के अंतर्निहित साधन (Date, DateFormatter, Calendar)
तिथियों के साथ कार्य करने के लिए मूल प्रकार Date संरचना है। यह समय का एक निरपेक्ष क्षण (1 जनवरी 2001 से सेकंड की संख्या) दर्शाता है। फ़ॉर्मेटिंग के लिए DateFormatter का उपयोग किया जाता है, और कैलेंडर गणनाओं के लिए Calendar का उपयोग किया जाता है।
import Foundation
// वर्तमान तिथि प्राप्त करनाlet now = Date()print("वर्तमान तिथि: \\(now)")
// तिथि फ़ॉर्मेटिंगlet formatter = DateFormatter()formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"formatter.timeZone = TimeZone(identifier: "Europe/Moscow")let formattedDate = formatter.string(from: now)print("फ़ॉर्मेट की गई तिथि: \\(formattedDate)")
// स्ट्रिंग को तिथि में पार्स करनाlet dateString = "2025-03-15 14:30:00"if let parsedDate = formatter.date(from: dateString) { print("पार्स की गई तिथि: \\(parsedDate)")}
// कैलेंडर गणनाएँlet calendar = Calendar.currentlet tomorrow = calendar.date(byAdding: .day, value: 1, to: now)!print("कल: \\(tomorrow)")2. SwiftDate — तिथियों के साथ कार्य के लिए शक्तिशाली लाइब्रेरी
SwiftDate Swift के लिए सबसे लोकप्रिय तृतीय-पक्ष लाइब्रेरी है। यह Foundation की क्षमताओं का विस्तार करती है, इसमें जोड़ती है:
- तिथियाँ बनाने के लिए सुविधाजनक सिंटैक्स (उदाहरण के लिए,
DateInRegion) - सापेक्ष तिथियों के साथ कार्य ("2 घंटे पहले", "3 दिन बाद")
- सभी समय क्षेत्रों और कैलेंडरों के लिए समर्थन
- किसी भी प्रारूप में स्ट्रिंग का पार्सिंग
import SwiftDate
// क्षेत्र में तिथि बनानाlet region = Region(calendar: Calendars.gregorian, zone: Zones.europeMoscow, locale: Locales.russian)let date = DateInRegion("2025-03-15 14:30:00", format: "yyyy-MM-dd HH:mm:ss", region: region)!print("क्षेत्र में तिथि: \\(date)")
// सापेक्ष समयlet now = DateInRegion()let twoHoursAgo = now - 2.hoursprint("2 घंटे पहले: \\(twoHoursAgo.toRelative())") // "2 घंटे पहले"
// तिथियों के बीच अंतरlet later = now + 5.dayslet difference = later - nowprint("अंतर: \\(difference.days) दिन")
// दूसरे समय क्षेत्र में रूपांतरणlet newYorkRegion = Region(zone: Zones.americaNewYork)let dateInNY = date.convert(to: newYorkRegion)print("न्यूयॉर्क में: \\(dateInNY)")3. TimeInterval और समय अंतराल के साथ कार्य
TimeInterval Swift में एक डेटा प्रकार है जो सेकंड की संख्या दर्शाता है। इसका उपयोग अक्सर समय अवधि और विलंब को मापने के लिए किया जाता है।
import Foundation
// अंतराल बनानाlet oneHour: TimeInterval = 3600let twoDays: TimeInterval = 2 * 24 * 3600
// निष्पादन समय मापनाlet start = Date()// लंबी अवधि के संचालन का अनुकरणsleep(2)let end = Date()let elapsed = end.timeIntervalSince(start)print("\\(elapsed) सेकंड बीत गए")
// DispatchQueue के साथ उपयोगDispatchQueue.main.asyncAfter(deadline: .now() + oneHour) { print("एक घंटा बीत गया")}4. ISO8601DateFormatter — अंतर्राष्ट्रीय प्रारूपों के साथ कार्य
ISO 8601 प्रारूप (अक्सर API में उपयोग किया जाता है) में तिथियों के साथ कार्य करने के लिए, Apple एक विशेष क्लास ISO8601DateFormatter प्रदान करता है।
import Foundation
let isoFormatter = ISO8601DateFormatter()isoFormatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds]
// ISO स्ट्रिंग का पार्सिंगlet isoString = "2025-03-15T14:30:00.000Z"if let date = पुस्तकालय में भी
Kotlin के लिए gRPC: लाइब्रेरीज़, सर्वर और क्लाइंट — कोड उदाहरण
TypeScript में YAML के साथ कार्य: पार्सिंग और सीरियलाइज़ेशन के लिए पूर्ण गाइड
Swift में GraphQL का उपयोग: iOS/macOS के लिए Apollo और Relay लाइब्रेरीज़
PHP में HTML पार्सिंग: लाइब्रेरी और टूल्स की पूरी गाइड