2016-10-14 19 views
-2

json応答からの文字列形式HH:MM:SSの格納時間。私はローカル通知のためにそれをNSDateに変換したい。 が試行されました NSString * datestr = @ "21:00:00";HH:MM:SS形式の文字列をNSDateに変換するには?

NSDateFormatter *dateformat = [[NSDateFormatter alloc]init]; 

[dateformat setDateFormat:@"hh:mm:ss"]; 
NSDate *date = [dateformat dateFromString:datestr]; 



NSLog(@"time is %@",date); 

Null時間の取得。私はjsonからの時刻形式は21時00分の形式でのみ日付はありません。毎日ローカル通知のためにこの時間を設定したいと思います。

+3

ヒント:時間は12時間形式ではなく24時間形式です。日付書式の仕様をお読みください。 – rmaddy

答えて

0

あなたは、文字列の時間部分は0から23 This site has a convenient list of date formatter codes.

の範囲にある場合、あなたはあなたがUNCalendarNotificationTriggerを作成できるようにNSDateComponentsに日付を変換したいと思うHHを使用する必要があります。

@implementation ViewController { 
    NSDateFormatter *parser; 
} 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    parser = [[NSDateFormatter alloc] init]; 
    parser.dateFormat = @"HH:mm:ss"; 
    parser.calendar = [NSCalendar autoupdatingCurrentCalendar]; 
} 

- (void)createRepeatingNotificationAtTimeOfDay:(NSString *)timeOfDay { 
    NSDate *date = [parser dateFromString:timeOfDay]; 
    if (date == nil) { 
     // Couldn't parse the string. 
     return; 
    } 

    NSDateComponents *components = [parser.calendar components:NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond fromDate:date]; 
    if (components == nil) { 
     // Couldn't extract components. 
     return; 
    } 

    UNCalendarNotificationTrigger *trigger = [UNCalendarNotificationTrigger triggerWithDateMatchingComponents:components repeats:YES]; 
    UNMutableNotificationContent *content = [[UNMutableNotificationContent alloc] init]; 
    content.title = @"Daily alarm"; 
    UNNotificationRequest *request = [UNNotificationRequest requestWithIdentifier:@"dailyalarm" content:content trigger:trigger]; 
    [[UNUserNotificationCenter currentNotificationCenter] addNotificationRequest:request withCompletionHandler:nil]; 
} 
関連する問題