खोज…


टिप्पणियों

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 कदम।

  1. NSDateFormatter Object बनाएं
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  1. वह दिनांक प्रारूप सेट करें जिसमें आप अपनी स्ट्रिंग चाहते हैं।
    dateFormatter.dateFormat = @"yyyy-MM-dd 'at' HH:mm";
  1. अब, स्वरूपित स्ट्रिंग प्राप्त करें

     NSDate *date = [NSDate date]; // your NSDate object
     NSString *dateString = [dateFormatter stringFromDate:date];
    

यह आउटपुट कुछ इस तरह देगा: 2001-01-02 at 13:00

ध्यान दें:

NSDateFormatter उदाहरण बनाना एक महंगा ऑपरेशन है, इसलिए इसे एक बार बनाने और जब संभव हो तब पुन: उपयोग करने की सिफारिश की जाती है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow