2011-09-19 39 views
2

可能重複:
how to convert datetime format in NSString?如何更改存儲在字符串中的日期格式?目標C

我已存儲的日期字符串從JSON解析。日期格式爲2011-1-24。現在我想轉換成MM-dd-YYYY格式。爲此,我正在使用此代碼

NSString *stringDate =[NSString stringWithFormat:@"%@",[list_date objectAtIndex:indexPath.row]]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"MM-dd-yyyy"]; 
NSDate *date = [dateFormatter dateFromString:stringDate]; 
NSString *newDate = [dateFormatter stringFromDate:date]; 

但它顯示空值。這段代碼中的問題是什麼?

在此先感謝...

回答

10

距離@Mayur喬希的答案不同,雖然它看起來是一樣的。

這一定會對你有用。

NSString *dateString = @"2011-09-19"; 
NSDateFormatter *format = [[NSDateFormatter alloc] init]; 
[format setDateFormat:@"yyyy-MM-dd"]; 
NSDate *date = [format dateFromString:dateString]; 
[format setDateFormat:@"MM-dd-yyyy"]; 
NSString* finalDateString = [format stringFromDate:date]; 
[format release]; 

我希望這可以幫助你。

如果您需要任何幫助,請在下面留言。

此外,您可以參考此鏈接獲取更多幫助。這個鏈接與你想要的非常相似,只是目標日期格式不同。

How to convert date string into format "17 Nov 2010"

+0

有什麼區別? – mayuur

+1

@Mayur:'YYYY'被替換爲代表年份的小'yyyy'。我只能說'YYYY'不起作用。也刪除重複的NSString聲明。儘管你的意圖可能沒有錯,但它是錯誤展示的基本概念。 :) –

0
NSString *dateStr = @"2011-1-24"; 

//OR if you have date then declare dateStr like this, 
NSString *dateStr = [NSString stringWithFormat:@"%@",yourDate]; 

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"YYYY-M-dd"]; 
NSDate *date = [dateFormat dateFromString:dateStr]; 
[dateFormat setDateFormat:@"MM-dd-YYYY"]; 
NSString* temp = [dateFormat stringFromDate:date]; 
[dateFormat release]; 

NSLog(@"%@",temp); 
+0

此代碼也將返回*零*爲'dateFromString'應該是'YYYY-M-dd'日期格式。 – EmptyStack

+0

@Mayur:這是錯誤的.. NSString * dateStr將生成編譯器警告,因爲它被聲明兩次.. –

+0

@Parth: - 顯然有一個OR選項之間的NSString * dateStr,因爲一個是簡單的文本,而另一個是你有日期作爲輸入的情況。 – mayuur