2011-01-20 59 views

回答

4

你應該看看NSDateComponents

int y = 2011; 
int m = 1; 
int d = 15; 


NSDateComponents *dc = [[NSDateComponents alloc] init]; 
[dc setYear:y]; 
[dc setMonth:m]; 
[dc setDay:d]; 

NSLog(@"%@: %@", [[dc date] class], [dc date]); 
+1

+1原則上是正確的,但實現是錯誤的。 `NSDateComponents`沒有`-date`方法,儘管你可以使用`NSCalendar`將其轉換成`NSDate`。 – 2011-01-20 08:38:20

+0

我對`NSDateComponents`類文檔(iOS 4.2 docset)進行了雙重檢查,並在'calendar`和`day`方法之間看到了`-date`方法。我錯過了什麼嗎? – Eimantas 2011-01-20 09:03:54

0

NSDateFormatter使用Unicode Standard解析日期字符串成日期。因此,格式化整數爲日期字符串,然後使用和NSDateFormatter來分析它:

// assume year, month and day are integers that are formatted properly and don't 
// include invalid ranges 
NSString* dateString = [NSString stringWithFormat:@"%04d %02d %02d", year, month, day]; 
NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; 
// Choose a format of YEAR MONTH DATE per the standard 
[formatter setDateFormat:@"yyyy MM dd"]; 
NSDate* date = [formatter dateFromString:dateString]; 
[formatter release]; 

您可以設置格式字符串的任何格式你的船浮筒,只要您使用Unicode標準(上面鏈接)你可以將你的整數轉換成相同的格式(很明顯)。