[英]How to convert string with format HH:MM:SS into NSDate?
从 json 响应中以字符串格式 HH:MM:SS 存储的时间。 我想将其转换为 NSDate 以进行本地通知。 试过 NSString *datestr = @"21:00:00";
NSDateFormatter *dateformat = [[NSDateFormatter alloc]init];
[dateformat setDateFormat:@"hh:mm:ss"];
NSDate *date = [dateformat dateFromString:datestr];
NSLog(@"time is %@",date);
获得空时间。 我有来自 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];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.