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

时间:2014-11-27 06:55:18

标签: 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];
[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仅包含日期。

Conversly start_time有活动时间,但在此之前还有一些参考日期。我如何删除它,所以我只有start_time

的时间

我一直在努力寻找,但我们还没能找到这个问题。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

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

您可能想要做的是从NSDate对象获取所需的NSDateComponents。

答案 1 :(得分:1)

不要试图将这个单独存储,而是将这些日期分开显示。我认为有时候完成日期可能很有用,但我不知道你的想法。

答案 2 :(得分:0)

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);