NSDateFormatter格式化时间(十七)

@font-face { font-family: "Courier New"; }@font-face { font-family: "宋体"; }@font-face { font-family: "Cambria Math"; }@font-face { font-family: "@宋体"; }@font-face { font-family: "Calibri"; }@font-face { font-family: "Cambria"; }@font-face { font-family: "Heiti SC Light"; }@font-face { font-family: "@Heiti SC Light"; }p.MsoNormal, li.MsoNormal, div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: justify; font-size: 12pt; font-family: Cambria; }h4 { margin: 14pt 0cm 14.5pt; text-align: justify; line-height: 156%; page-break-after: avoid; font-size: 14pt; font-family: Calibri; }.MsoChpDefault { font-family: Cambria; }div.WordSection1 { page: WordSection1; }

NSDateFormatter类,是oc提供好的格式化时间的类,可以将我们获取的时间,格式化成一个我们自己想要展示的方式。

NSDateFormatter会自动判断我们格式化出来的时间,所在时区,比如我们让他输出年月日时分秒,这里会自动判断我们所在的东八区,并获取东八区的时间。

//        NSDateFormatter

        //定格式

        //自动判断时区,并补上时区

        NSDateFormatter *format = [[NSDateFormatter alloc]init];

        [format setDateFormat:@"yyyy年MM月dd日 HH时mm分ss秒"];

        NSString *time = [format stringFromDate:date11];

        NSLog(@"%@",time);//2015-04-21 11:07:07.541 OCLesson7_NSDate[1175:46103] 2015年04月21日 19时07分07秒

这里的格式化输出为:yyyy表示年,MM表示月,dd表示天,HH表示时,mm表示分,ss表示秒。oc中只会识别这几个格式,对年月日什么的都都不识别,所以,这几个字符串放在哪个地方,就会在哪个地方输出相应的年月日。不能改变这些关键字,否则不能识别。

dateFromString把字符串转换成日期

首先,必须用NSDateFormatter的setDateFormat方法来设置格式化输出的格式。才能在定义的字符串按照这个格式定义。

        NSDateFormatter *format = [[NSDateFormatter alloc]init];

        [format setDateFormat:@"yyyy年MM月dd日 HH时mm分ss秒"];

        NSString *time = [format stringFromDate:date11];

        NSLog(@"%@",time);//2015-04-21 11:07:07.541 OCLesson7_NSDate[1175:46103] 2015年04月21日 19时07分07秒

       

        //字符串转换成NSDate

        NSString *str = @"2016年6月18日 08时59分01秒";//要与上面的@"yyyy年MM月dd日 HH时mm分ss秒"一一匹配,包括空格什么的。如果不匹配返回null

        NSDate *d = [[format dateFromString:str] dateByAddingTimeInterval:60*60*8];

        NSLog(@"%@",d );

原文地址:https://www.cnblogs.com/DevinSMR/p/5118615.html