日期和时间比较,包括iphone sdk中的AM / PM

时间:2012-01-19 09:07:46

标签: iphone compare nsdate nsdateformatter

我需要比较两个日期和时间(上午/下午)。我使用了以下代码。

-(NSDate*)dateFromString:(NSString*)dateString{
    // Convert string to date object
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MM-dd H:mm:ss"];
    NSDate *date = [dateFormat dateFromString:dateString];  
    [dateFormat release];

    return date;
}

#define kMinute 60
#define kHour (60*60)
#define kDay (60*60*24)
-(NSString*)textFromSeconds:(double)seconds{
    if(seconds < kMinute)
        return [NSString stringWithFormat:@"%0.0f seconds",seconds];

    if(seconds < kHour)
        return [NSString stringWithFormat:@"%0.0f minutes",seconds/kMinute];

    if(seconds < kDay)
        return [NSString stringWithFormat:@"%0.0f hours",seconds/kHour];

    return [NSString stringWithFormat:@"%0.0f days", seconds/kDay];
}

-(NSString*)textFromDateString:(NSString*)dateString{
    NSDate *date =[self dateFromString:dateString];
    double seconds = [[NSDate date] timeIntervalSinceDate:date];
    NSString *text = [self textFromSeconds:seconds];
    NSLog(@"text is: %@", text);
    return text;
}

-(void)test{
    [self textFromDateString:@"2011-02-20 17:19:25"];
    [self textFromDateString:@"2011-02-20 17:10:25"];
    [self textFromDateString:@"2011-02-20 14:04:25"];
    [self textFromDateString:@"2011-02-19 14:04:25"];
}

它的工作完美。但我需要将其转换为12小时制。所以我需要将两个日期与AM或PM进行比较。我应该在上面的代码中做些什么修改来实现目标?

我将dateformat更改为@“yyyy-MM-dd HH:mm a”并尝试使用相同格式的日期,但它不起作用。

感谢。

1 个答案:

答案 0 :(得分:2)

尝试将日期格式更改为@&#34; yyyy-MM-dd hh:mm a&#34;