2016-07-12 10 views
0

私は以下のコードを持っています。ここでは、日付と時刻を取得する2つの方法を試しました。私がフォーマッタを使用する場合、それは私に上記のエラーを与える。私はそれを使用しない場合、日付の形式が正しくないと私が得る時間も間違っています。親切に助けてください。NSStringをNSDate型のパラメータに送る互換性のないポインタ型* _Nonnull ios目的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]]); 

これは私がこの行は私にこの行を

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

エラーを与える

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];  

をしたい、この2016年12月7日18時32分のような出力が得られ私に値を与える2016-07-12 15:02:51 +0000現在の時間に2時間を加えた後IMEが、ここでの時間は

答えて

0

はこれを試してみてください間違っている....関数datestrの

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

印刷説明:日付の 2016年12月7日19時04分 印刷の説明:2016年7月12日13 :34:00 +0000 self-> pickupHoursLateの印刷の説明: 2016-07-12 19:34:00 +0000 まだ同じ問題が発生しています –

+0

よろしくお願いします...コードが変更されました。 。timeZone to formatter –

+0

dateStrの印刷の説明: 12-07-2016 19:1 1 日付の印刷記述: 2016年7月12日13時41分00秒+0000 自己> pickupHoursLateの印刷記述: 2016年7月12日午後七時41分00秒+0000 –

関連する問題