2016-07-12 4 views
0

sendet Ich habe den folgenden Code. Hier habe ich zwei Methoden ausprobiert um Datum und Uhrzeit zu ermitteln. Wenn ich Formatierer verwende, gibt es mir den obigen Fehler. Wenn ich es nicht verwende, ist das Datumsformat nicht korrekt und die Zeit, die ich bekomme, ist auch falsch. Freundlich helfen. dieseInkompatibler Zeigertyp, der NSString an Parameter des Typs NSDate * _Nonnull ios Objectiv c

NSDate *pickupHoursLate; 
NSDate *dropHoursLate; 

formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"dd-MM-yyyy HH:mm"]; 
NSLog(@"Old Date and Time : %@",[formatter stringFromDate:[NSDate date]]); 

geben Sie mir eine Ausgabe wie diese 12-07-2016 18:32 was ich will

NSCalendar *calender = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 
    NSDateComponents *components = [[NSDateComponents alloc] init]; 
    int pickHoursToAdd = [[[NSUserDefaults standardUserDefaults] objectForKey:@"pickupPriorTimePeriod"] intValue]; 
    [components setHour:pickHoursToAdd]; 
    pickupHoursLate = [calender dateByAddingComponents:components toDate:[formatter stringFromDate:[NSDate date]] options:0];  

Diese Linie gibt mir die Fehler

int dropHoursToAdd = [[[NSUserDefaults standardUserDefaults] objectForKey:@"dropPriorTimePeriod"] intValue]; 
[components setHour:dropHoursToAdd]; 
dropHoursLate = [calender dateByAddingComponents:components toDate:[NSDate date] options:0]; 

Diese Linie gibt mir den Wert 2016-07-12 15:02:51 +0000 nach dem Hinzufügen von 2 Stunden zu aktuellen t ime aber hier ist die Zeit falsch

Antwort

0

Try this ....

NSDate *pickupHoursLate; 
NSDate *dropHoursLate; 

formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"dd-MM-yyyy HH:mm"]; 
[formatter setTimeZone:[NSTimeZone systemTimeZone]]; 
NSLog(@"Old Date and Time : %@",[formatter stringFromDate:[NSDate date]]); **<this give me output like this 12-07-2016 18:32 which I want>** 
NSCalendar *calender = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; 
NSDateComponents *components = [[NSDateComponents alloc] init]; 
int pickHoursToAdd = [[[NSUserDefaults standardUserDefaults] objectForKey:@"pickupPriorTimePeriod"] intValue]; 
[components setHour:pickHoursToAdd]; 

//Editing start 
NSString *dateStr = [formatter stringFromDate:[NSDate date]] ; 
NSDate *date = [formatter dateFromString:dateStr]; 
    pickupHoursLate = [calender dateByAddingComponents:components toDate: date options:0]; **<This Line gives me the error>** 
//Editing End 

int dropHoursToAdd = [[[NSUserDefaults standardUserDefaults] objectForKey:@"dropPriorTimePeriod"] intValue]; 
[components setHour:dropHoursToAdd]; 
dropHoursLate = [calender dateByAddingComponents:components toDate:[NSDate date] options:0]; **<This Line gives me the value "2016-07-12 15:02:51 +0000" after adding 2 hrs to current time but here the time is incorrect>** 
+0

Drucken Beschreibung von dateStr: 12-07-2016 19:04 Drucken Beschreibung Datum: 2016.07.12 13 : 34: 00 +0000 Druckbeschreibung von self> pickupHoursLate: 2016-07-12 19:34:00 +0000 Noch das gleiche Problem kommt –

+0

Okay, es ... Änderte den Code sehen Sie jetzt .. ZeitZone zu Formatierer hinzugefügt –

+0

Ausdrucken von dateStr: 12-07-2016 19: 1 1 Drucken Beschreibung Datum: 2016-07-12 13:41:00 +0000 Druck Beschreibung der Selbst> pickupHoursLate: 2016.07.12 19.41.00 0.000 –

Verwandte Themen