2009-04-23 12 views
20

मुझे NSDate मिला है जो एक विशिष्ट समय का प्रतिनिधित्व करता है। उस तारीख का प्रारूप hhmmss है। मैं उस समय मूल्य पर NSInterval मान (सेकेंड में निर्दिष्ट) जोड़ना चाहता हूं।कोको में एनएसडीएटी में एनएसटीइम इंटरवल जोड़ें

उदाहरण:

NSDate =   123000 
NSTimeInterval = 3600 

Added together = 133000 

यह करने के लिए सबसे अच्छा तरीका क्या है?

उत्तर

52

क्या आपने Dates and Times Programming Topics for Cocoa मैनुअल देखा है?

असल में आपको अपना समय एनएसडीएट में बदलने की जरूरत है। किसी स्ट्रिंग को किसी दिनांक में बदलने के लिए आप NSDateFormatter कक्षा या शायद NSDateComponents का उपयोग करते हैं यदि आप पहले से ही घंटे, मिनट और सेकंड जानते हैं।

आपका NSTimeInterval केवल एक डबल (यानी, 3600.0) है।

फिर आप उस समय सेकंड की संख्या जोड़ने के लिए एनएसडीएटी की dateByAddingTimeInterval विधि का उपयोग करते हैं।

NSDate* newDate = [oldDate dateByAddingTimeInterval:3600.0]; 

फिर आप या तो NSDateFormatter या NSDateComponents नए समय वापस बाहर फिर से प्राप्त करने के लिए उपयोग कर सकते हैं।

+0

धन्यवाद, बिल्कुल मुझे क्या चाहिए! –

+0

ऐडटाइम इंटरवल: आईओएस 4.0 में बहिष्कृत। डेटबायडिंगटाइम इंटरवल का उपयोग करें: - http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html –

+0

@SeungUnHam वास्तव में। जवाब लिखा गया था जब आईफोन ओएस 2.x वर्तमान (!) था, लेकिन मैंने इसे वर्तमान अनुशंसा को दर्शाने के लिए अद्यतन किया है। –

8

addTimeInterval अब बहिष्कृत है। इसके बजाय dateByAddingTimeInterval का उपयोग करने का प्रयास करें।

1
// This will set the time when your view appears it will also 
// set the time if you want to retrieve from it. 
-(void)viewDidAppear:(BOOL)animated 
{ 
    //Create todays date 
    NSDate *duedate = [NSDate date]; 
    //Add how ever many days you could write 86400*numbe_of_days days 86400/24 for an hour 
    //Then simply reassign the variable or use a different one. 
    duedate = [duedate dateByAddingTimeInterval:86400]; //I add one day 
    [datePicker setDate:duedate animated:YES]; //Animate yes will show your pickers moving 
    [datePicker setMinimumDate:duedate]; //Set minimum date. 
} 
संबंधित मुद्दे