时间字符串转换

 G: 公元时代,例如AD公元

    yy: 年的后2位

    yyyy: 完整年

    MM: 月,显示为1-12

    MMM: 月,显示为英文月份简写,如 Jan

    MMMM: 月,显示为英文月份全称,如 Janualy

    dd: 日,2位数表示,如02

    d: 日,1-2位显示,如 2

    EEE: 简写星期几,如Sun

    EEEE: 全写星期几,如Sunday

    aa: 上下午,AM/PM(xcode8之前aa表示上下午,之后aa表示am/pm,官方代码看不到,做个提醒,如果你是xcode8之前的编辑器,最好把am/pm转成上下午做,网上有传tt可以代表am/pm,楼主亲测,无效)

    H: 时,24小时制,0-23

    K:时,12小时制,0-11

    m: 分,1-2位

    mm: 分,2位

    s: 秒,1-2位

    ss: 秒,2位

    S: 毫秒

 

1.date转string

NSDate *date=[NSDate date];
 
NSLog(@"%@",date);//2015-11-20 00:37:40 +0000
 
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];//创建一个日期格式化器
 
dateFormatter.dateFormat=@"yyyy-MM-dd hh:mm:ss";//指定转date得日期格式化形式
 
NSLog(@"%@",[dateFormatter stringFromDate:date]);//2015-11-20 08:24:04
 
 dateFormatter.dateFormat=@"yyyy-MM-dd";
 
NSLog(@"%@",[dateFormatter stringFromDate:date]);//2015-11-20
 
 dateFormatter.dateFormat=@"yyyy-MM-dd eeee aa HH:mm:ss";
 
 NSLog(@"%@",[dateFormatter stringFromDate:date]);//2015-11-20 Friday AM 08:30:28
 
dateFormatter.dateFormat=@"yyyy-MM-dd hh:mm:ss z";
 
NSLog(@"%@",[dateFormatter stringFromDate:date]);//2015-11-20 08:42:22 GMT+8

 

其实date转string只需要根据格式来就可以了,但是string转date需要注意事项

2.string转date

 

NSString *dateStr=@"2012-5-4 4:34:23";
 
dateFormatter.dateFormat=@"yyyy-mm-dd hh:mm:ss";

 

//输出:2012-05-03 20:34:23 +0000

/*

转化的类型必须与dateFormat保持一致

2012-->y

5->m

4->d

*/

 NSString *birthdayStr=@"1986-03-28 00:00:00.000";
 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];
 [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:8]];//解决8小时时间差问题
 NSDate *birthdayDate = [dateFormatter dateFromString:birthdayStr];

 

posted @ 2019-05-22 09:42  OIMM  阅读(264)  评论(0编辑  收藏  举报