Objective-C Language
NSDate
खोज…
टिप्पणियों
NSDate
एक बहुत ही सरल मूल्य प्रकार है, जो सार्वभौमिक समय में एक सटीक क्षण का प्रतिनिधित्व करता है। इसमें टाइम ज़ोन, डेलाइट सेविंग टाइम, कैलेंडर, या लोकेल के बारे में जानकारी नहीं होती है।
NSDate
वास्तव में एक NSTimeInterval
आसपास केवल एक अपरिवर्तनीय आवरण है जो एक double
। फाउंडेशन में कुछ अन्य मूल्य प्रकारों के साथ, कोई भी परिवर्तनशील उपवर्ग नहीं है।
एक NSDate बनाना
NSDate
वर्ग NSDate
ऑब्जेक्ट को दिए गए दिनांक और समय के अनुरूप बनाने के लिए तरीके प्रदान करता है। एक NSDate
को निर्दिष्ट इनिशियलाइज़र का उपयोग करके आरंभ किया जा सकता है, जो:
1 जनवरी 2001 को 00:00:00 UTC के सापेक्ष एक
NSDate
ऑब्जेक्टNSDate
गया जो सेकंड की संख्या के अनुसार है।
NSDate *date = [[NSDate alloc] initWithTimeIntervalSinceReferenceDate:100.0];
NSDate
वर्तमान दिनांक और समय के बराबर NSDate
बनाने का एक आसान तरीका प्रदान करता है:
NSDate *now = [NSDate date];
वर्तमान दिनांक और समय से कुछ सेकंड के लिए NSDate
बनाना भी संभव है:
NSDate *tenSecondsFromNow = [NSDate dateWithTimeIntervalSinceNow:10.0];
तारीख तुलना
उद्देश्य-सी में NSDate
s की तुलना करने के 4 तरीके हैं:
-
- (BOOL)isEqualToDate:(NSDate *)anotherDate
-
- (NSDate *)earlierDate:(NSDate *)anotherDate
-
- (NSDate *)laterDate:(NSDate *)anotherDate
-
- (NSComparisonResult)compare:(NSDate *)anotherDate
2 तारीखों का उपयोग करके निम्नलिखित उदाहरण पर विचार करें NSDate date1 = July 7, 2016
NSDate date2 = July 2, 2016
NSDate date1 = July 7, 2016
और NSDate date2 = July 2, 2016
:
NSDateComponents *comps1 = [[NSDateComponents alloc]init];
comps.year = 2016;
comps.month = 7;
comps.day = 7;
NSDateComponents *comps2 = [[NSDateComponents alloc]init];
comps.year = 2016;
comps.month = 7;
comps.day = 2;
NSDate* date1 = [calendar dateFromComponents:comps1]; //Initialized as July 7, 2016
NSDate* date2 = [calendar dateFromComponents:comps2]; //Initialized as July 2, 2016
अब जब NSDate
बनाए गए हैं, तो उनकी तुलना की जा सकती है:
if ([date1 isEqualToDate:date2]) {
//Here it returns false, as both dates are not equal
}
हम यह भी उपयोग कर सकते हैं earlierDate:
और laterDate:
के तरीकों NSDate
वर्ग:
NSDate *earlierDate = [date1 earlierDate:date2];//Returns the earlier of 2 dates. Here earlierDate will equal date2.
NSDate *laterDate = [date1 laterDate:date2];//Returns the later of 2 dates. Here laterDate will equal date1.
अंत में, हम NSDate
की compare:
उपयोग कर सकते हैं compare:
विधि:
NSComparisonResult result = [date1 compare:date2];
if (result == NSOrderedAscending) {
//Fails
//Comes here if date1 is earlier than date2. In our case it will not come here.
}else if (result == NSOrderedSame){
//Fails
//Comes here if date1 is the same as date2. In our case it will not come here.
}else{//NSOrderedDescending
//Succeeds
//Comes here if date1 is later than date2. In our case it will come here
}
कन्वर्ट NSDate जो घंटे और मिनट (केवल) से एक पूर्ण NSDate में बना है
ऐसे कई मामले हैं, जब किसी ने केवल एक घंटे और मिनट के प्रारूप से एक NSDate बनाया है, अर्थात: 08:12
इस स्थिति के लिए नकारात्मक पक्ष यह है कि आपका NSDate लगभग पूरी तरह से "नग्न" है और आपको क्या करने की आवश्यकता है: अन्य NSDate प्रकारों के साथ "खेलने" के लिए इस ऑब्जेक्ट को बनाने के लिए दिन, महीना, वर्ष, दूसरा और समय क्षेत्र।
उदाहरण के लिए मान लें कि घंटेअमिनट्यूड NSDate प्रकार है जो घंटे और मिनट प्रारूप से बना है:
NSDateComponents *hourAndMintuteComponents = [calendar components:NSCalendarUnitHour | NSCalendarUnitMinute
fromDate:hourAndMinute];
NSDateComponents *componentsOfDate = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear
fromDate:[NSDate date]];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay: componentsOfDate.day];
[components setMonth: componentsOfDate.month];
[components setYear: componentsOfDate.year];
[components setHour: [hourAndMintuteComponents hour]];
[components setMinute: [hourAndMintuteComponents minute]];
[components setSecond: 0];
[calendar setTimeZone: [NSTimeZone defaultTimeZone]];
NSDate *yourFullNSDateObject = [calendar dateFromComponents:components];
अब आपकी वस्तु "नग्न" होने के कुल विपरीत है।
NSDate को NSString में परिवर्तित करना
अगर ww में NSDate ऑब्जेक्ट है, और हम इसे NSString में बदलना चाहते हैं। विभिन्न प्रकार के डेट स्ट्रिंग्स हैं। हम यह कैसे कर सकते हैं ?, यह बहुत सरल है। सिर्फ 3 कदम।
- NSDateFormatter Object बनाएं
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
- वह दिनांक प्रारूप सेट करें जिसमें आप अपनी स्ट्रिंग चाहते हैं।
dateFormatter.dateFormat = @"yyyy-MM-dd 'at' HH:mm";
अब, स्वरूपित स्ट्रिंग प्राप्त करें
NSDate *date = [NSDate date]; // your NSDate object NSString *dateString = [dateFormatter stringFromDate:date];
यह आउटपुट कुछ इस तरह देगा: 2001-01-02 at 13:00
ध्यान दें:
NSDateFormatter
उदाहरण बनाना एक महंगा ऑपरेशन है, इसलिए इसे एक बार बनाने और जब संभव हो तब पुन: उपयोग करने की सिफारिश की जाती है।