Ios 如何将格式为HH:MM:SS的字符串转换为NSDate?
json responce中以字符串格式HH:MM:SS存储的时间。我想将其转换为本地通知的NSDate。 尝试 NSString*datestr=@“21:00:00”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的时间格式是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];
}