2012-01-25 96 views
0

我有一個包含日期的字符串:的NSString的NSDate轉換

2012-05-25 

,我婉把這個字符串轉換的NSDate:

NSString *birthday = /*2012-05-25*/; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"YYYY-MM-DD"]; 


NSDate *dateFromString = [dateFormatter dateFromString:birthday]; 

,並在dateFromString我得到今天的日期。

+0

嘗試使用'yyyy-MM-dd'作爲格式字符串。 – 2012-01-25 10:33:43

回答

2

這工作:

NSString *birthday = @"2012-05-25";  
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd"];   
NSDate *dateFromString = [dateFormatter dateFromString:birthday]; 
NSLog(@"%@", dateFromString); 

輸出:

2012-01-25 11:36:38.157 DSV [2679:903] 2012-05-25 00:00:00 0200

詳情請參考Apple guide

+0

我嘗試了一下,但我在我輸入的日期前一天得到:'2012-05-24 21:00:00 +0000' – MTA

+1

請在我提供的鏈接中閱讀完整文檔。我不知道細節,但它可能與語言環境有關。這裏也有很多問題。 – 2012-01-25 11:16:04

0

我希望這可以幫助你。試試這個

- (NSDate*) dateFromString:(NSString*)aStr 
    { 

     NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
     [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease]]; 

     [dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; 
     [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 

     NSLog(@"%@", aStr); 
     NSDate *aDate = [dateFormatter dateFromString:aStr]; 
     [dateFormatter release]; 
     return aDate; 
    }