如何找到Date ios sdk的格式

时间:2015-08-10 14:05:47

标签: ios objective-c nsdate nsdateformatter

我的格式为:Jun 22, 2015, 01.30PM IST

我无法在NSDate中转换它。

我正在使用此格式进行转换:MMM dd, yyyy, hh.mma zzzz 当我使用NSLog时,我得到null。

此外,我想查找当前时间与此时间之间的分钟数。我怎样才能解决这两个问题。

    NSDate *date = [dateFormatter dateFromString:[dateValue objectAtIndex:indexPath.row]];    
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"MMM dd, yyyy, hh.mma zzzz";

  NSLog(@"%@", [formatter dateFromString:[dateValue objectAtIndex:indexPath.row]]);

2 个答案:

答案 0 :(得分:1)

您的格式实际上是MMM d, yyyy, h.ma zzzz
我使用this cheatsheet作为NSDateFormatter。

第二部分:

NSTimeInterval distanceBetweenDates = [date1 timeIntervalSinceDate:date2];
double numberOfMinutes = distanceBetweenDates / 60;

答案 1 :(得分:0)

程序将是这样的:

步骤1.,解析日期

NSString *_stringDate = @"Jun 22, 2015, 01.30PM IST";
NSDateFormatter *_dateFormatter = [[NSDateFormatter alloc] init];
_dateFormatter.dateFormat = @"MMM dd, yyyy, hh.mma z";
NSDate *_parsedDate = [_dateFormatter dateFromString:[_stringDate stringByReplacingOccurrencesOfString:@"IST" withString:@"+0530"]];

注意:"IST"可能不是解析器可以解释的时区,因此您可能需要在某些情况下将其替换为等效值,以小时为单位"+0530"

步骤2.,计算差值

NSCalendar *_calendar = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
NSCalendarUnit _unit = NSCalendarUnitMinute;
NSDateComponents *_componenets = [_calendar components:_unit fromDate:[NSDate date] toDate:_parsedDate options:0];

NSInteger _differenceInMinutes = _componenets.minute;

注意:差异也可以是零,负值或正值。