天天看點

NSDate和NSString之間的互相轉換

今天給大家分享一些關于NSDate和NSString互相轉換。百度一下,有一大推相關的方法。每次都百度,不如自己收集起來友善。

NSDate轉NSString

日期轉成字元串。這個雖然簡單,但是我相信很多朋友初次遇到肯定束手無策。腦子裡蹦出四個字:這怎麼轉?直接上代碼:

//擷取系統目前時間

NSDate*currentDate=[NSDatedate];

//用于格式化NSDate對象

NSDateFormatter*dateFormatter=[[NSDateFormatteralloc]init];

//設定格式:zzz表示時區

[dateFormattersetDateFormat:@"yyyy-MM-ddHH:mm:sszzz"];

//NSDate轉NSString

NSString*currentDateString=[dateFormatterstringFromDate:currentDate];

//輸出currentDateString

NSLog(@"%@",currentDateString);

NSDate對象包含兩個部分,日期(Date)和時間(Time)。格式化的時間字元串主要也是針對日期和時間的。NSDateFormatter是一個很常用的類,用于格式化NSDate對象,支援本地化的資訊。

NSDateFormatter常用的格式有:

yyyy-MM-ddHH:mm:ss.SSS 

yyyy-MM-ddHH:mm:ss

yyyy-MM-dd

MMddyyyy

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-2608:08:08";

//設定轉換格式

NSDateFormatter*formatter=[[NSDateFormatteralloc]init];

[formattersetDateFormat:@"yyyy-MM-ddHH:mm:ss"];

//NSString轉NSDate

NSDate*date=[formatterdateFromString:dateString];

NSDate和NSString互相轉換就是這麼簡單。

轉換工具類

在項目中,我們需要用到轉換的地方可能不止一處,是以建議我們定義一個工具類。在工具類裡實作如下兩個方法:

//NSDate轉NSString

+(NSString*)stringFromDate:(NSDate*)date

{

//擷取系統目前時間

NSDate*currentDate=[NSDatedate];

//用于格式化NSDate對象

NSDateFormatter*dateFormatter=[[NSDateFormatteralloc]init];

//設定格式:zzz表示時區

[dateFormattersetDateFormat:@"yyyy-MM-ddHH:mm:sszzz"];

//NSDate轉NSString

NSString*currentDateString=[dateFormatterstringFromDate:currentDate];

//輸出currentDateString

NSLog(@"%@",currentDateString);

returncurrentDateString;

}

//NSString轉NSDate

+(NSDate*)dateFromString:(NSString*)string

{

//需要轉換的字元串

NSString*dateString=@"2015-06-2608:08:08";

//設定轉換格式

NSDateFormatter*formatter=[[NSDateFormatteralloc]init];

[formattersetDateFormat:@"yyyy-MM-ddHH:mm:ss"];

//NSString轉NSDate

NSDate*date=[formatterdateFromString:dateString];

returndate;

}