2012-01-03 64 views
1

在我的应用程序中,我从Webservices获取数据。数据以XML的形式出现,我使用解析器来解析和获取我需要的数据。在iOS中以不同格式解析日期

在其中一个结果中,我得到日期为2011年12月14日。但是我想将日期显示为2011-14-12。

这里是我使用的代码..

NSDate *endDate = [CommonHelper getDateFromString:[NSString stringWithString:elementValue] :@"dd-MMM-yyyy HH:mm:ss"]; 

+ (NSDate *) getDateFromString: (NSString *) dateStr: (NSString *) format 
{ 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:format]; 
    NSDate *newDate = [dateFormat dateFromString:dateStr]; 
    [dateFormat release]; 

    return newDate; 
} 

会有人能够帮助我,我该怎么办呢?

+0

使用NSDateFormatter的日期字符串转换为一个NSDate对象,然后再次使用NSDateFormatter到的NSDate对象转换成所需的格式。 – 2012-01-03 19:48:32

+0

感谢您的答复..我曾尝试将该日期转换为NSDate ..但是,它似乎并没有正确转换,因为我得到空值... – learner2010 2012-01-03 19:55:44

+0

如果您将日期定为“2011年12月14日”,您可能有尝试使用格式“dd MMM yyyy”。另外,我建议您设置一个语言环境,否则解析可能取决于用户本地设置。 – seppo0010 2012-01-03 20:09:33

回答

1

使用这些方法来解析日期字符串,像你描述格式化日期对象:

+ (NSDate *)parseDate:(NSString *)dateString { 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"dd MMM yyyy"]; 
    NSDate *newDate = [dateFormat dateFromString:dateString]; 
    [dateFormat release]; 

    return newDate; 
} 

+ (NSString *)formatDate:(NSDate *)date { 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"yyyy-dd-MM"]; 
    NSString *dateString = [dateFormat stringFromDate:date]; 
    [dateFormat release]; 

    return dateString; 
} 
+1

正如seppo0010所建议的那样,你应该[始终设置语言环境](http://stackoverflow.com/questions/6613110/what-is-the-best-way-to-deal-with-the-nsdateformater-locale-feature) 。 – 2012-01-03 20:39:55