Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将格式为HH:MM:SS的字符串转换为NSDate?_Ios_Objective C_Nsdateformatter - Fatal编程技术网

Ios 如何将格式为HH:MM:SS的字符串转换为NSDate?

Ios 如何将格式为HH:MM:SS的字符串转换为NSDate?,ios,objective-c,nsdateformatter,Ios,Objective C,Nsdateformatter,json responce中以字符串格式HH:MM:SS存储的时间。我想将其转换为本地通知的NSDate。 尝试 NSString*datestr=@“21:00:00” 获取零时间。我有json的时间格式是21:00:00格式,只是没有日期。我想为每天的本地通知设置这个时间。如果字符串的小时数部分在0到23之间,则需要使用HH 然后,您需要将日期转换为NSDateComponents,以便创建UNCalendarNotificationTrigger @implementation ViewC

json responce中以字符串格式HH:MM:SS存储的时间。我想将其转换为本地通知的NSDate。 尝试 NSString*datestr=@“21:00:00”


获取零时间。我有json的时间格式是21:00:00格式,只是没有日期。我想为每天的本地通知设置这个时间。

如果字符串的小时数部分在0到23之间,则需要使用
HH

然后,您需要将日期转换为
NSDateComponents
,以便创建
UNCalendarNotificationTrigger

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

提示:您的工作时间是24小时制,而不是12小时制。请阅读日期格式化程序规范。
@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];
}