2012-01-03 17 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