时间字符串string转换为时间格式nsdate

废话不多说直接贴代码:

一、字符串转时间格式

    //字符串转换为日期
    // 实例化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 


转载请注明:http://blog.csdn.net/fantasy_jun/article/details/72331591

你可能感兴趣的:(NSDateFormatter,NSString)