2013-07-12 14 views
2

我想從NSDate對象類型中獲取一個字符串,並將其顯示在標籤中。 這裏是我使用的代碼,NSDate到字符串轉換和顯示在UILabel

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init] ; 
[dateFormatter setDateStyle:NSDateFormatterLongStyle]; 
//[dateFormatter setTimeStyle:NSDateFormatterNoStyle]; 
NSDate *datey = [dateFormatter dateFromString:selectedDate]; 
NSString *labelData = [dateFormatter stringFromDate:datey]; 
dateLabel.Text = labelData; 

其中selectedDate是包含在YYYY-MM-DD格式日期的字符串。 標籤沒有顯示日期。但是,如果我嘗試給它一個像「@ someblah」這樣的字符串,它就會顯示出來。我在哪裏錯了? 幫助讚賞。由於

+1

[需要將自定義時間戳轉換爲Objective-C iOS中的不同格式](http://stackoverflow.com/questions/10823129/need-to-convert-custom-timestamp-to-different-format- in-objective-c-ios) – rmaddy

回答

2

你行dateLabel.Text應該dateLabel.text

因此,您從日期字符串開始,將其轉換爲日期,然後使用相同的格式化程序將其轉換回字符串。是不是更容易使用:

dateLabel.text = selectedDate; 

在所有的可能性,你要創建使用日期字符串與格式不一致的一個NSDate。例如,如果格式爲@"yyyy-MM-dd",但您的selectedDate與該格式不同,那麼格式化程序將不會返回NSDate。您可以通過將DateFormat設置爲selectedDate正確,然後在解析後更改所需輸出的DateFormat來避免此問題。或者使用兩個NSDateFormatter實例。

+0

我不知道爲什麼..它仍然不工作! :(好吧,我想以不同的格式顯示日期,所以我不得不將它轉換爲NSDate,得到我想要的格式並打印。 – kate

+0

當我嘗試顯示dateLabel.text = selectedDate,它的工作原理!!但是當我我試圖改變格式和顯示..它不顯示任何東西.. – kate

+1

真棒!謝謝一噸:) – kate

1

嘗試指定特定的格式,而不是NSDateFormatLongStyle,例如

[dateFormatter setDateFormat:@"yyyy-MM-dd"]; 

,我發現這個答案在使用谷歌2秒..(是的這就是一個暗示)

+0

它仍然不起作用:( – kate

+0

我錯過了.text屬性的外殼錯誤,但是你是如何解決日期解析問題的? –

+0

我的selecteddate格式爲「yyyy-mm -dd「,我試圖用NSDateFormatterLongStyle解析它,這就是爲什麼它沒有返回NSDate。當我將格式化程序更改爲」yyyy-mm-dd「時,它返回NSDate,我可以愉快地將其轉換爲我想要的格式以顯示在我的標籤:) – kate