Objective-C字符串(yyyy-mm-dd)到NSDate



My App是一个JSON代码,它涉及字符串类型的日期。(如"2011-10-01")。我想知道如何将其转换为NSDate?它需要以不同的时间格式显示,如"2011年10月1日"。

前任。此代码不起作用:

   NSString *date1 = @"2010-11-12";
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MMMM-dd"];
    NSDate *date2 = [dateFormat dateFromString:date1];
    NSString *strdate = [dateFormat stringFromDate:date2];

正如Tug在他的博客文章中所写的那样:

Objective-C和iOS SDK提供了一个类来帮助格式化日期(封送处理和取消封送处理),此类为NSDateFormatter。不令人惊讶的是,NSDateFormatter使用了Unicode日期格式图案。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [dateFormatter dateFromString:publicationDate ];
[dateFormatter release];

其中publicationDate在本例中是一个NSString。

使用NSDateFormatter。合适的方法是dateFromString:。查看文档:)

你可以试试这个

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
[df setDateFormat:@"dd MM yyyy"];    
NSString *todayString = [df stringFromDate:[NSDate date]];
NSDate *someDate=[NSDate date];
NSString *targetDateString = [df stringFromDate:someDate];
NSLog(@"date:%@",targetDateString);