Ios 在NSDate中分别存储日期和时间

Ios 在NSDate中分别存储日期和时间,ios,objective-c,nsdate,nsdateformatter,datetime-format,Ios,Objective C,Nsdate,Nsdateformatter,Datetime Format,因此,我现在得到一个包含日期和时间的字符串,格式为“2014-12-22T11:00:00+0500”,以便将其转换为我正在使用的NSdate NSDateFormatter* dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"]; NSDate* date = [dateFormatter dateFromString:start_time

因此,我现在得到一个包含日期和时间的字符串,格式为“2014-12-22T11:00:00+0500”,以便将其转换为我正在使用的NSdate

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
NSDate* date = [dateFormatter dateFromString:start_time];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString* temp = [dateFormatter stringFromDate:date];
self.eventDate = [dateFormatter dateFromString:temp];

NSDateFormatter* timeFormatter = [[NSDateFormatter alloc]init];
[timeFormatter setDateFormat:@"HH:mm:ss"];
NSString* temp2 = [timeFormatter stringFromDate:date];
self.start_time = [timeFormatter dateFromString:temp2];
现在,即使转换成功,问题是
eventDate
也有日期之后的时间
00:00:00
。如何删除此项,以便
eventDate
仅包含日期

相反,
start\u time
有事件发生的时间,但也有一些在此之前的任意参考日期。我如何才能删除它,使我只有时间在
start\u time


我找了又快又努力,但还是没能找出这个问题。任何帮助都将不胜感激。

您不能删除仅保留一个组件的日期或时间。如果我没记错的话,NSDate对象在内部只是相对于固定时间点的秒数。因此,每个NSDate都包含完整的日期和时间信息


您可能要做的是从NSDate对象中获取所需的NSDate组件。

不要尝试单独存储这些组件,只需单独显示这些日期即可。我认为有时完整地获取日期可能会有用,但我不知道你的想法。

尝试使用不同的日期格式化程序进行第二种格式。
You can try with it, it may be help you.

NSString *finalDate = @"2014-12-22T11:00:00+0500";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
NSDate *date = [dateFormatter dateFromString:finalDate];

//For getting Time
NSDateFormatter* df1 = [[NSDateFormatter alloc]init];
[df1 setDateFormat:@"hh:mm:ss"];
NSString *time = [df1 stringFromDate:date];
NSLog(@"time  %@ ", time);

//For getting Date
NSDateFormatter* df2 = [[NSDateFormatter alloc]init];
[df2 setDateFormat:@"yyyy-MM-dd"];
NSString *actualDate = [df2 stringFromDate:date];
NSLog(@"actualDate  %@ ", actualDate);