ios - 如何在 Objective C 中比较日期格式的字符串

标签 ios objective-c nsdateformatter

我有两个字符串,格式为 Fri, 22 Jan 2016 10:46:50 +0530。我需要比较这两个字符串。如果可以通过将它们转换为日期来完成,我该如何编写 NSDateFormatter 样式。尝试了下面的代码。但没有工作。我将 newDate 和 currentDate 设为 nil。任何帮助将不胜感激。

NSString *dateString1 = @"Fri, 22 Jan 2016 10:46:50 +0530";
NSString *dateString2 = @"Fri, 21 Jan 2016 10:46:50 +0530";
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateStyle:NSDateFormatterFullStyle];

NSDate *newDate = [inputFormatter dateFromString:dateString1];
NSDate *currentDate = [inputFormatter dateFromString:dateString2];

[inputFormatter release];

NSComparisonResult result = [newDate compare:currentDate]; // comparing two dates

if(result == NSOrderedAscending || result == NSOrderedSame) {
    NSLog(@"newDate is less or same");
}

最佳答案

使用 [inputFormatter setDateFormat:@"EEE, DD MMM yyyy HH:mm:ss z"];

    NSString *dateString1 = @"Fri, 22 Jan 2016 10:46:50 +0530";
    NSString *dateString2 = @"Fri, 22 Jan 2016 10:46:50 +0530";

    NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];

    [inputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];

    NSDate *newDate = [inputFormatter dateFromString:dateString1];
    NSDate *currentDate = [inputFormatter dateFromString:dateString2];

    NSComparisonResult result = [newDate compare:currentDate]; // comparing two dates

    if(result == NSOrderedAscending || result == NSOrderedSame) {
        NSLog(@"newDate is less or same");
    }

关于ios - 如何在 Objective C 中比较日期格式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34991968/

相关文章:

ios - 如何将服务器响应日期转换为本地时区?

iphone - 使用 NSDateFormatter 将 NSString 转换为 unix 时间——代码在 50% 的时间内有效

ios - iphone 4s 中的 AvCapture Session 全屏

objective-c - 使用 AVAssetReader 和 timeRange 实时读取样本

iphone - ios 使用 AVFramework 捕获图像

iphone - 将多个文件复制到文档目录

iphone - 在 UITableView 单元格中格式化日期和时间

ios - Kingfisher nil 在展开可选值时

推送或弹出新 View Controller 时,iOS 7 自定义 UINavigationBar TitleView 移动

ios - 释放占用大量内存的弹出窗口