如何在ios中将字符串转换为日期以进行警报通知?

时间:2015-05-07 20:55:04

标签: ios objective-c nsdate nsdateformatter

我的问题是,我有一个类似于07:25 AM的字符串现在我的问题是如何为警报应用程序的位置通知创建此字符串。

到目前为止,我这样做了:

   NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]init];
   [dateFormatter setDateFormat:@"HH:mm a"];
   NSDate * timeNotFormatted = [dateFormatter dateFromString:@"07:25 AM"];

但是它显示了这个时间:1999-12-31 18:25:00 +0000我想要这样的事情todays date 7:25:00

我在日期转换方面有点新意,所以如果有人帮助我,那么对我有帮助。

此致

卫门

1 个答案:

答案 0 :(得分:1)

您必须使用NSDateComponents。它有点冗长,但看​​起来有点像这样:

NSDateFormatter *formatter = [NSDateFormatter new];
formatter.dateFormat = @"hh:mm a";

NSDate *timestamp = [formatter dateFromString:@"07:25 AM"];

NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];
NSDateComponents *timestampComponents = [calendar components:NSCalendarUnitHour|NSCalendarUnitMinute fromDate:timestamp];
NSDateComponents *currentTimeComponents = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:[NSDate new]];
currentTimeComponents.hour = timestampComponents.hour;
currentTimeComponents.minute = timestampComponents.minute;

NSDate *result = [calendar dateFromComponents:currentTimeComponents];