2012-01-25 45 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; 
    }