Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS中的日期转换_Ios_Objective C_Nsdate - Fatal编程技术网

iOS中的日期转换

iOS中的日期转换,ios,objective-c,nsdate,Ios,Objective C,Nsdate,我必须比较日期(来自服务器)和今天的日期。来自服务器的日期格式不同(即日期格式可以是2015-09-08或2015-09-08T11:30:00+0530) 我们如何将这些不同的日期格式与iOS(Objective-C)中今天的日期进行比较。试试这个 -(void)dateFormateTest{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; formatter.dateFormat = @"yyyy-MM-dd

我必须比较日期(来自服务器)和今天的日期。来自服务器的日期格式不同(即日期格式可以是2015-09-08或2015-09-08T11:30:00+0530)

我们如何将这些不同的日期格式与iOS(Objective-C)中今天的日期进行比较。

试试这个

  -(void)dateFormateTest{
 NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss Z";
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[formatter setTimeZone:[NSTimeZone defaultTimeZone]];
[NSTimeZone resetSystemTimeZone];
NSDate *date = [formatter dateFromString:@"2015-10-06 12:39:12"];
NSLog(@"date: %@",date);

NSComparisonResult result = [date compare:[NSDate date]];
if (result == NSOrderedDescending) {
    NSLog(@"Past");
}else if (result == NSOrderedDescending) {
    NSLog(@"future");
}


}

实际上,无论您是否要比较两个不同格式的日期,问题都在于比较日期值,您必须确保
1.它们被转换为同一时区
2.使用-(NSComparisonResult)比较:(NSDate*)另一种方法

此外,如果要将日期字符串响应从HE转换为NSDate,可以执行以下操作

+ (NSDate *)dateFromDateString:(NSString *)dateString withFormat:(NSString *)format {
    NSDateFormatter *formatter = [NSDateFormatter new];
    formatter.dateFormat = format;
    return [formatter dateFromString:dateString];
}
此外,在比较特定组件(例如年、月、日和无小时、分钟或秒)中的两个日期时,您必须使用
NSDateComponents

- (BOOL)date:(NSDate *)aDate isEqualToDateIgnoringTime:(NSDate *) anotherDate
    {
        NSCalendarUnit unitFlags = (NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond);
        NSDateComponents *components1 = [[NSCalendar currentCalendar] components:unitFlags fromDate:aDate];
        NSDateComponents *components2 = [[NSCalendar currentCalendar] components:unitFlags fromDate:anotherDate];
        return ((components1.year == components2.year) && (components1.month == components2.month) && (components1.day == components2.day));
}

用你迄今为止的尝试更新你的问题。解释你遇到的问题。如果你想在目标C中找到答案,为什么要用swift标记你的问题?为什么要在日期格式化程序上设置两种不同的日期格式?