日期(NSDate)是NSString类的格式(stringWithFormat),也可以改变输出,如果需要输出年代信息等则需要进行转换,等等
NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间。
NSDateFormatter可以比较方便的进行格式转换。
1.
获取当前日期时间
NSDate * dt = [NSDate date];
2.
//NSDateFormatter实例
NSDateFormatter *form= [[NSDateFormatter alloc] init];
3.
//NSDateFormatter格式化
[form setDateFormat:@"G yyyy/MM/dd(EEE) K:mm:ss的"];
4.
//输出为文本格式
NSString *str = [form stringFromDate:dt];
5.
// NSDateFormatter alloc内存释放
[form release];
6.
str 变量内容格式为 AD 2010/11/25(Thu) 00:55:15的格式。
该格式可以指定以下内容:
01
G: 公元时代,例如AD公元
02
yy: 年的后2位
03
yyyy: 完整年
04
MM: 月,显示为1-12
05
MMM: 月,显示为英文月份简写,如 Jan
06
MMMM: 月,显示为英文月份全称,如 Janualy
07
dd: 日,2位数表示,如02
08
d: 日,1-2位显示,如 2
09
EEE: 简写星期几,如Sun
10
EEEE: 全写星期几,如Sunday
11
aa: 上下午,AM/PM
12
H: 时,24小时制,0-23
13
K:时,12小时制,0-11
14
m: 分,1-2位
15
mm: 分,2位
16
s: 秒,1-2位
17
ss: 秒,2位
18
S: 毫秒
代码::
//设置时间格式的类 获取时间的方式
formater =[[NSDateFormatter alloc]init];
NSString * time = [dic objectForKey:@"update_time"];后去时间字符串为1990-11-02 15:23:06 这样
[formater setDateFormat:@"yyyy-MM-dd H:mm:ss"]; //设置格式
NSDate *date = [formater dateFromString:time];
NSLog(@"%@",date);
double inter = fabs([date timeIntervalSinceNow]);
if (inter<60) {
cell.emlastTime.text = @"1分钟前";
}else if(inter<60*60){
cell.emlastTime.text = [NSString stringWithFormat:@"%d分钟前",(int)inter/60];
}else if(inter<60*60*24){
cell.emlastTime.text = [NSString stringWithFormat:@"%d小时前",(int)inter/(60*60)];
}else{
cell.emlastTime.text = [NSString stringWithFormat:@"%d天前",(int)inter/(60*60*24)];
}