2016.8.12
相差天數:
-?(int)intervalSinceNow:?(NSString?*)?theDate
{
NSDateFormatter?*date=[[NSDateFormatter?alloc]?init];
[date?setDateFormat:@"yyyy-MM-dd?HH:mm:ss"];
NSDate?*d=[date?dateFromString:theDate];
NSTimeInterval?late=[d?timeIntervalSince1970]*1;
NSDate*?dat?=?[NSDate?dateWithTimeIntervalSinceNow:0];
NSTimeInterval?now=[dat?timeIntervalSince1970]*1;
NSString?*timeString=@"";
NSTimeInterval?cha=now-late;
if?(cha/86400>1)
{
timeString?=?[NSString?stringWithFormat:@"%f",?cha/86400];
timeString?=?[timeString?substringToIndex:timeString.length-7];
return?[timeString?intValue];
}
return?-1;
}
相差分鐘數:
cha/3600<1 ? 分鐘
if (cha/3600>1&&cha/86400<1) 小時
01// 獲取當前日期
02NSDate *date = [NSDate date];
03
04// 打印結果: 當前時間 date = 2013-08-16 09:00:04 +0000
05NSLog(@"當前時間 date = %@",date);
06
07// 獲取從某個日期開始往前或者往后多久的日期,此處60代表60秒,如果需要獲取之前的,將60改為-60即可
08date = [[NSDate alloc] initWithTimeInterval:60 sinceDate:[NSDate date]];
09
10//打印結果:當前時間 往后60s的時間date = 2013-08-16 09:01:04 +0000
11NSLog(@"當前時間 往后60s的時間date = %@",date);
PS:測試時時間是下午5點,但是得到的當前時間卻是上午9點,相差了8小時,是時區的問題
解決辦法:
1NSTimeZone *zone = [NSTimeZone systemTimeZone];
2
3NSInteger interval = [zone secondsFromGMTForDate: date];
4
5NSDate *localDate = [date? dateByAddingTimeInterval: interval];
6
7// 打印結果 正確當前時間 localDate = 2013-08-16 17:01:04 +0000
8NSLog(@"正確當前時間 localDate = %@",localDate);