NSDate和NSString相互轉換

jopen 9年前發布 | 13K 次閱讀 NSDate Objective-C開發

原文  http://www.superqq.com/blog/2015/06/26/nsdatehe-nsstringxiang-hu-zhuan-huan/

 

NSDate和NSString相互轉換

不積小流無以成江海,不及硅步無以至千里。做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運營者

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!