1. 程式人生 > >NSDate和NSString相互轉換

NSDate和NSString相互轉換

date 部分 當前 sda 英文 none 剛剛在線 轉換 微信公眾號

技術分享

不積小流無以成江海,不及矽步無以至千裏。做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)站長,百度百家專欄作者
iOSproject師非著名自媒體。微信公眾號iOS開發:iOSDevTip運營者

技術分享

?

NSDate和NSString相互轉換