0

ここでこのアプリを使用 していますが、正常に動作しますが、datePickerを使用する代わりに、ローカル通知のfireDateを手動で挿入したいと思います。

notif.fireDate = [datePicker date];

日付(日、月、年、時、分)を手動で挿入するにはどうすればよいですか?

私は以下を試しました

NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];
NSDateComponents *dateComps = [[NSDateComponents alloc] init];
[dateComps setDay:10];
[dateComps setMonth:3];
[dateComps setYear:2013];
[dateComps setHour:4];
[dateComps setMinute:45];
NSDate *itemDate = [calendar dateFromComponents:dateComps];

int minutesBefore = 2;
notif.fireDate = [itemDate addTimeInterval:-(minutesBefore*60)];

しかし、それは私にはうまくいきません。

前もって感謝します。

4

2 に答える 2

2

NSDateFormatterを使用すると、NSStringから直接変換できますNSDate。次に例を示します。

NSDateFormatter* myFormatter = [[NSDateFormatter alloc] init];
[myFormatter setDateFormat:@"MM/dd/yyyy"];
NSDate* myDate = [myFormatter dateFromString:@"8/26/2012"];
NSLog(@"%@", myDate);  

編集
あなたも時間が欲しいなら

NSString *str =@"3/15/2012 9:15 PM";
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"MM/dd/yyyy hh:mm a"];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[formatter setTimeZone:gmt];
NSDate *date = [formatter dateFromString:str];

NSLog(@"%@",date);  

詳細については、このリンクをたどってくださいSO Answer

そしてlocalNotificationの場合は、発火日後にこれも実装してください

UIApplication *app=[UIApplication sharedApplication];
[app scheduleLocalNotification:localNotification];
于 2013-03-11T14:44:41.267 に答える
0

使ってaddTimeIntervalみませんか?

UILocalNotification *localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = [itemDate addTimeInterval:-(minutesBefore*60)]; 

 //minutesBefore will be type of int and itemDate would be of NSDate type.

アップデート1:

少し検索したところaddTimeInterval、iOS4以降では非推奨であることがわかりました。代わりにを使用する必要がありますdateByAddingTimeInterval

 localNotif.fireDate = [itemDate dateByAddingTimeInterval:-(minutesBefore*60)]; 

に負の値を指定すると、の数分dateByAddingTimeInterval通知がitemDate送信されます。

于 2013-03-11T14:44:12.310 に答える