2013-10-17 33 views
-2

我很新的objective-c和我有一個日期存儲在一個sqlite表中作爲一個整數,例如20131017(代表2013年10月17日)。我想以2013年10月17日的格式顯示給用戶,但我的代碼在我登錄時會產生一個空值。將一個整數轉換爲日期格式

毫無疑問,我很想念一些非常基本的東西 - 但對於我來說,我看不到它。

下面的代碼:

_fromDate.text = _startDate; //e.g.20131017 (representing Oct 17, 2013) 

NSString *dateString =[NSString stringWithFormat:@"%d", [_fromDate.text intValue]]; 
NSLog(@"dateString: %@", dateString);// shows 20131017 ok 

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"MMM dd, yyyy"]; 
NSDate *date = [dateFormat dateFromString:dateString]; 
NSLog(@"date: %@", date); //produces a nil result 

得到任何幫助。謝謝。

+1

這不是日期格式化程序的工作原理。更好地閱讀文檔。這已經在這裏多次討論過了。 – 2013-10-17 21:00:50

+0

呃,如果你打算使用日期格式化程序來解析字符日期,那麼「日期格式」應該或多或少類似於你想要解析的字符串。 –

+0

[如何解析日期字符串到iOS中的NSDate對象?](http://stackoverflow.com/questions/4999396/how-to-parse-a-date-string-into-an-nsdate- object-in-ios) –

回答

2

隨着這段代碼:

[dateFormat setDateFormat:@"MMM dd, yyyy"]; 
NSDate *date = [dateFormat dateFromString:dateString]; 

你說:

  1. 這是我的日期格式
  2. 轉換這個字符串,這是我剛纔跟你說的格式,變成日期

但字符串不是這種格式,所以它不起作用。

格式實際上是:@"yyyyMMdd"(或類似的東西,我沒有規範手)。

你真的需要2種格式(和2格式化)...

  1. 格式,以您的存儲字符串轉換爲日期
  2. 格式你的日期轉換成您的顯示字符串(這是一個你已經有)