废话不多说直接贴代码:
一、字符串转时间格式
//字符串转换为日期
// 实例化NSDateFormatter
NSDateFormatter *inputFormatter= [[NSDateFormatter alloc] init];
//使用en_US才可识别缩写月份
[inputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];
//设置字符串对应的时间格式
[inputFormatter setDateFormat:@"MMM d, yyyy hh:mm:ss aa"];
NSString *string = @"Apr 14, 2017 12:00:00 AM";
NSDate *inputDate = [inputFormatter dateFromString:dateString];
这里有几点需要注意一下,en_US为美国时间,但只有设置为en_US才可以识别缩写的月份,中国时间为zh_CN
还有这里12小时方式显示,若有AM或PM,使用的应为aa而不是tt!!!网上很多都写的tt
如果时间格式设置与字符串不对应,会导致nsdate为空,也就读不出时间,注意一一对应
二、时间格式转字符串
NSDateFormatter *outputFormatter= [[NSDateFormatter alloc] init];
//获取当地的时区
[outputFormatter setLocale:[NSLocale currentLocale]];
//设置要输出的时间格式
[outputFormatter setDateFormat:@"yyyy.M.d"];
NSString *str= [outputFormatter stringFromDate:inputDate];
另附时间格式对应的代码:
iOS-NSDateFormatter 格式说明:
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
hh:时,12小时制,0-11
m: 分,1-2位
mm: 分,2位
s: 秒,1-2位
ss: 秒,2位
S: 毫秒
常用日期结构:
yyyy-MM-dd HH:mm:ss.SSS
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd
MM dd yyyy
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
hh:时,12小时制,0-11
m: 分,1-2位
mm: 分,2位
s: 秒,1-2位
ss: 秒,2位
S: 毫秒
常用日期结构:
yyyy-MM-dd HH:mm:ss.SSS
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd
MM dd yyyy