NSDate和NSString相互轉換
原文 http://www.superqq.com/blog/2015/06/26/nsdatehe-nsstringxiang-hu-zhuan-huan/
不積小流無以成江海,不及硅步無以至千里。做iOS開發也是這樣,平時寫代碼要多收集一些有用的代碼,以免每次都從新來一遍,不僅浪費時間,也影響開發效率。
有人把做app形容成蓋房子,碼農就是搬磚的,真的是形象無比。隨著時間的推移,手里積累的優秀代碼就越來越多。這樣,蓋起房子來,效率肯定是杠杠的。
我也會收集一些有用的代碼,有的會寫在博客里,有的會寫成demo放在github上面,有的就很安靜的躺在我的電腦里。每次我用到的時候,我都會順手復制過來。
今天給大家分享一些關于NSDate和NSString相互轉換。百度一下,有一大推相關的方法。每次都百度,不如自己收集起來方便。
NSDate轉NSString
日期轉成字符串。這個雖然簡單,但是我相信很多朋友初次遇到肯定束手無策。腦子里蹦出四個字:這怎么轉?直接上代碼:
//獲取系統當前時間 NSDate *currentDate = [NSDate date]; //用于格式化NSDate對象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //設置格式:zzz表示時區 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zzz"]; //NSDate轉NSString NSString *currentDateString = [dateFormatter stringFromDate:currentDate]; //輸出currentDateString NSLog(@"%@",currentDateString);
NSDate對象包含兩個部分,日期(Date)和時間(Time)。格式化的時間字符串主要也是針對日期和時間的。NSDateFormatter是一個很常用的類,用于格式化NSDate對象,支持本地化的信息。
NSDateFormatter常用的格式有:
yyyy-MM-dd HH:mm:ss.SSS yyyy-MM-dd HH:mm:ss yyyy-MM-dd MM dd yyyy
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 H: 時,24小時制,0-23 K:時,12小時制,0-11 m: 分,1-2位 mm: 分,2位 s: 秒,1-2位 ss: 秒,2位 S: 毫秒
NSString轉NSDate
既然NSDate可以轉成NSString,毫無疑問NSString也可以轉成NSDate。代碼如下:
//需要轉換的字符串 NSString *dateString = @"2015-06-26 08:08:08"; //設置轉換格式 NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //NSString轉NSDate NSDate *date=[formatter dateFromString:dateString];
NSDate和NSString相互轉換就是這么簡單。
轉換工具類
在項目中,我們需要用到轉換的地方可能不止一處,所以建議我們定義一個工具類。在工具類里實現如下兩個方法:
//NSDate轉NSString + (NSString *)stringFromDate:(NSDate *)date { //獲取系統當前時間 NSDate *currentDate = [NSDate date]; //用于格式化NSDate對象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; //設置格式:zzz表示時區 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zzz"]; //NSDate轉NSString NSString *currentDateString = [dateFormatter stringFromDate:currentDate]; //輸出currentDateString NSLog(@"%@",currentDateString); return currentDateString; } //NSString轉NSDate + (NSDate *)dateFromString:(NSString *)string { //需要轉換的字符串 NSString *dateString = @"2015-06-26 08:08:08"; //設置轉換格式 NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //NSString轉NSDate NSDate *date=[formatter dateFromString:dateString]; return date; }
有了這個工具類,媽媽再也不用擔心我的轉換能力啦!
作者李剛是剛剛在線(www.superqq.com)站長,百度百家專欄作者 iOS工程師非著名自媒體,微信公眾號iOS開發:iOSDevTip運營者