2011-08-09 121 views
0

想知道如何將字符串「yyyymmdd」轉換爲格式爲「mm-dd-yyyy」的字符串的最佳方法。嘗試NSDateFormatter沒有運氣。任何幫助表示讚賞!簡單日期格式化問題yyyymmdd

我的解決方案如下:

NSString *dateString = @"22082011; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyyMMdd"]; 
NSDate *date = [dateFormatter dateFromString:dateString]; 

[dateFormatter setDateFormat:@"MMM d, YYYY"]; 
dateString = [dateFormatter stringFromDate:date]; 
[dateFormatter release]; 
+0

目前尚不清楚你想要什麼。你想重新排列格式字符串嗎? – jtbandes

+0

我只想要一個重新排列的字符串,最好是以一種更優雅的方式,而不僅僅是通過它,並使用substringWithRange,substringToIndex等。 – Mason

+0

最好將它變成「mm/dd/yyyy」,因爲通常「 - 」與國際符號(yyyy-mm-dd),「/」和美國國旗(mm/dd/yyyy)和「。」一起使用。到歐洲一個(dd.mm.yyyy)。 – glglgl

回答

7

你首先需要分析它:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyyMMdd"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 

,然後你可以使用這個:

[dateFormat setDateFormat:@"yyyy-MM-dd"]; 
NSString *myFormattedDate = [dateFormat stringFromDate:date]; 
+0

完美!謝謝! – Mason

3
NSString *dateStr = @"20081122"; 

// Convert string to date object 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyyMMdd"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 

// Convert date object to desired output format 
[dateFormat setDateFormat:@"EEEE MMMM d, YYYY"]; 
dateStr = [dateFormat stringFromDate:date]; 
[dateFormat release]; 

從a helpful article.

+1

不錯的提醒,像格式化的東西必須被釋放! – tomdemuyt