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



所以我得到了一个包含这种格式的日期和时间的字符串 "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_time有事件发生的时间,但也有一些在此之前的参考日期。我怎样才能删除它,所以我只有时间start_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);

最新更新