1
給定三個整數,代表日,月和年,哪些代碼將這些整數組裝成日期對象?從整數彙編數據對象?
給定三個整數,代表日,月和年,哪些代碼將這些整數組裝成日期對象?從整數彙編數據對象?
你應該看看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]);
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標準(上面鏈接)你可以將你的整數轉換成相同的格式(很明顯)。
+1原則上是正確的,但實現是錯誤的。 `NSDateComponents`沒有`-date`方法,儘管你可以使用`NSCalendar`將其轉換成`NSDate`。 – 2011-01-20 08:38:20
我對`NSDateComponents`類文檔(iOS 4.2 docset)進行了雙重檢查,並在'calendar`和`day`方法之間看到了`-date`方法。我錯過了什麼嗎? – Eimantas 2011-01-20 09:03:54