#prmark mark - 传入1970年到特定时间的秒,算出距离现在的时间
+ (NSString *)caculateTime:(long)dateTime {
//时间格式转换器
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm"];
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setTimeZone:timeZone];
//取出现在的时间
NSDate *nowDate = [NSDate date];
//1970年距离现在多少秒
long timeNow = [nowDate timeIntervalSince1970];
// //返回以1970/01/01 GMT为基准,然后过了secs秒的时间
// NSDate *getDate = [NSDate dateWithTimeIntervalSince1970:[dateString longLongValue]];
//两者时间差
long differenceDate = timeNow - dateTime;
long month=((long)differenceDate)/(3600*24*30);
long days=((long)differenceDate)/(3600*24);
long hours=((long)differenceDate)%(3600*24)/3600;
long minute=((long)differenceDate)%(3600*24)/60;
//时间计算结果
NSString *resultString;
if(month!=0){
resultString = [NSString stringWithFormat:@"%@%ld%@",@"",month,@"个月前"];
}else if(days!=0){
resultString = [NSString stringWithFormat:@"%@%ld%@",@"",days,@"天前"];
}else if(hours!=0){
resultString = [NSString stringWithFormat:@"%@%ld%@",@"",hours,@"小时前"];
}else {
resultString = [NSString stringWithFormat:@"%@%ld%@",@"",minute,@"分钟前"];
}
return resultString;
}
传入一个NSString类型的日期
格式如newsDate = @"2013-08-09 17:01";
或者newsDate = @"2013/08/09 17:01";
返回如果有一个月,就不返回天,依次类推。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
-(NSString *)getUTCFormateDate:(NSString *)newsDate
{
// newsDate = @"2013-08-09 17:01";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@
"yyyy-MM-dd HH:mm"
];
NSLog(@
"newsDate = %@"
,newsDate);
NSDate *newsDateFormatted = [dateFormatter dateFromString:newsDate];
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@
"UTC"
];
[dateFormatter setTimeZone:timeZone];
NSDate* current_date = [[NSDate alloc] init];
NSTimeInterval
time
=[current_date timeIntervalSinceDate:newsDateFormatted];
//间隔的秒数
int
month=((
int
)
time
)/(3600*24*30);
int
days=((
int
)
time
)/(3600*24);
int
hours=((
int
)
time
)%(3600*24)/3600;
int
minute=((
int
)
time
)%(3600*24)/60;
NSLog(@
"time=%d"
,(
double
)
time
);
NSString *dateContent;
if
(month!=0){
dateContent = [NSString stringWithFormat:@
"%@%i%@"
,@
" "
,month,@
"个月前"
];
}
else
if
(days!=0){
dateContent = [NSString stringWithFormat:@
"%@%i%@"
,@
" "
,days,@
"天前"
];
}
else
if
(hours!=0){
dateContent = [NSString stringWithFormat:@
"%@%i%@"
,@
" "
,hours,@
"小时前"
];
}
else
{
dateContent = [NSString stringWithFormat:@
"%@%i%@"
,@
" "
,minute,@
"分钟前"
];
}
// NSString *dateContent=[[NSString alloc] initWithFormat:@"%i天%i小时",days,hours];
[current_date release];
[dateFormatter release];
return
dateContent;
}
|