2009-10-31 12 views
45

मेरे पास एक तिथि है जो डबल मान में परिवर्तित हो जाती है और डेटाबेस में सहेजी जाती है। अब, मैं currentDate > myDataBaseDate + 8 घंटों की तुलना करना चाहता हूं यानी, मैं अपनेडेटाबेसडेट में 8 घंटे जोड़ना चाहता हूं। मैं तारीख को दोहरे मानों में परिवर्तित कर रहा हूं। तो मैं अपने डेटाबेस सहेजी गई तारीख से 8 घंटे बाद का समय कैसे प्राप्त करूं। मैं की तुलना किस प्रकारएनएसडीएटी में घंटों को जोड़ने के लिए कैसे?

if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase) 

उत्तर

141

मैं पूरी तरह सुनिश्चित करें कि आप क्या करने की कोशिश कर रहे हैं नहीं कर रहा हूँ, लेकिन आप समय का उपयोग कर एक और NSDate करने पर सेकंड में जोड़कर एक NSDate वस्तु बना सकते हैं:

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds

// जैसे। वर्तमान समय में 8 घंटे जोड़ने के लिए:

NSDate *mydate = [NSDate date]; 
NSTimeInterval secondsInEightHours = 8 * 60 * 60; 
NSDate *dateEightHoursAhead = [mydate dateByAddingTimeInterval:secondsInEightHours]; 
+3

यदि आपके लिए परिशुद्धता महत्वपूर्ण है तो इस तरह की तारीख गणित का उपयोग करने से बचें। आप एक मिनट में 60 सेकंड, और एक घंटे में 60 मिनट नहीं मान सकते हैं। NSCalendar उन सभी कोने मामलों को दूर करने के लिए मौजूद है (उदाहरण के लिए लीप सेकंड)। –

+0

tnks दोस्त ... सबसे अच्छा जवाब मैंने पाया – Mehul

+0

@ बेनपैकर्ड उस मामले में आपका समाधान क्या है? – circuitry

0

आप बस अपने डेटाबेस मूल्य के लिए 8 * 3600 में जोड़ सकते हैं (यह मानते हुए कि आपके परिवर्तित डबल मूल्य सेकंड का प्रतिनिधित्व करता है)।

0

एनएसडीएटी * startdate = datePicker.date;

NSTimeInterval secondsInOneHours = 1 * 60 * 60; 

    NSDate *dateOneHoursAhead = [startdate dateByAddingTimeInterval:secondsInOneHours]; 

    [dateformate setDateFormat:@"d-MMM-yy HH:mm:ss"]; 

    strDate = [dateformate stringFromDate:dateOneHoursAhead]; 
2

आप बस का उपयोग कर सकते हैं:

NSDate *incrementedDate = [NSDate dateWithTimeInterval:numberOfSeconds sinceDate:[NSDate date]]; 
12

iOS 8 के बाद से वहाँ है और अधिक सुविधाजनक dateByAddingUnit:

//add 8 hours 
let calendar = NSCalendar.autoupdatingCurrentCalendar() 
newDate = calendar.dateByAddingUnit(.CalendarUnitHour, value: 8, toDate: originalDate, options: nil) 
+3

यह स्वीकार्य उत्तर होना चाहिए, उत्तर देने और ऊपर टिप्पणी करने के लिए धन्यवाद। – woody121

0

स्विफ्ट 3.X सरल उपयोग

let calendar = NSCalendar.autoupdatingCurrent 
let newDate = calendar.date(byAdding: .hour, value: 8, to: Date()) 
संबंधित मुद्दे