日、月、年を表す3つの整数が与えられた場合、これらの整数を日付オブジェクトに組み立てるコードは何ですか?整数から日付オブジェクトをアセンブルしますか?
1
A
答えて
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]);
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標準を使用して、あなたのボートを浮かびます整数を同じ形式に変換します(明らかに)。
+0
あなたはYYYY ... YYYY ...大文字があなたに狂ったISO週カレンダー、iircを与えてもらいたいかもしれません。 –
+0
@Catfish_Manあなたが正しいです、私はISOの年の週番号ではなく、yyyyの数字を意味しました!ありがとう! –
+1は原則的には正解ですが、実装が間違っています。 'NSDateComponents'には' -date'メソッドはありませんが、 'NSCalendar'を使ってNSDateに変換することができます。 –
'NSDateComponents'クラスのドキュメント(iOS 4.2ドキュメントセット)を二重チェックし、' calendar'メソッドと 'day'メソッドの間に' -date'メソッドを表示します。何か不足していますか? – Eimantas
ああ、私はMac OS X 10.6ドックセットをチェックしました。そして、 'NSDateComponents'は実際に' -date'メソッドを持っていません。質問はiOSタグを持っているので、私はそれがココアタッチのためだと考えました。 – Eimantas