普通的转换:
NSString *dateStr = @"2014-04-15 10:25:25";NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM dd, yyyy KK:mm:ss aa"];
NSDate *date = [formatter dateFromString:dateStr];
若要将特殊格式的字符串转换成NSDate,如:Apr 25, 2014 2:23:10 PM
只需设置formatter格式为@”MM dd,yyyy KK:mm:ss aa“即可
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd_HH-mm-ss"];//设置格式化样式
NSString *formattedTime = [formatter stringFromDate:[NSDate date]];
一些特殊格式如下:
- 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
- HH: 时,24小时制,0-23
- KK:时,12小时制,0-11
- m: 分,1-2位
- mm: 分,2位
- s: 秒,1-2位
- ss: 秒,2位
- S: 毫秒
- Z:GMT
有时会遇到所得时间与实际时间相差几个小时,原因是时区不对,添加[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC+8"]];即可