如何从日期时间格式中检索NSDate?

时间:2013-08-04 06:05:06

标签: ios objective-c nsstring nsdate

我想检查两个日期:一个是我的plist中的NSString格式2013-08-03 12:26:33 +0000

但是,我只需要2013-08-03,如何删除剩余的时间值?请帮我。

我正在使用以下代码检查日期,它对我有用。但我只需要在2013-08-03 12:26:33 +0000

中检索日期部分
 NSString *start = @"2013-08-03 ";
    NSString *end = @"2013-08-05";

    NSDateFormatter *f = [[NSDateFormatter alloc] init];
    [f setDateFormat:@"yyyy-MM-dd"];
    NSDate *startDate = [f dateFromString:start];
    NSDate *endDate = [f dateFromString:end];


    NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *components = [gregorianCalendar components:NSDayCalendarUnit
                                                        fromDate:startDate
                                                          toDate:endDate
                                                         options:0];

    NSLog(@"%ld", [components day]);

1 个答案:

答案 0 :(得分:2)

所以,如果您只想要一个带有日期部分的字符串,只需使用dateFormatter,就像之前所做的那样。

假设你有一个日期,你想要一个字符串的一部分,我封装了一个返回带有日期部分的字符串的方法:

-(NSString*) stringDatePartOf:(NSDate*)date
{
    NSDateFormatter *formatter = [[NSDateFormatter new];
    [formatter setDateFormat:@"yyyy-MM-dd"];

    return [formatter stringFromDate:date];
}

例如,如果您传递的值为2013-08-03 12:26:33 +0000的日期,则此方法将返回2013-08-03,就像您想要的那样。