日付が整数プロパティに保存される従来のデータオブジェクトのGUIを書いていますday of the year
とyear
(実際の "天才"デザイン...)Objective-C:年と年の指定された日付を見つける
このデータを年と月に変換するにはどうすればよいですか?
私は現在しようとしている:
int theYear = 2016;
int theDayOfTheYear = 222;
NSCalendar* gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setYear:theYear];
[components setDay:theDayOfTheYear];
NSDate* theDate = [gregorian dateFromComponents:components];
は、これは私には少しもハックようです。 > 31日で動作することはちょうど偶然かもしれません - NSDateComponentsクラスリファレンスでこれについて何も言及していません。通常のDD-MM-YYYYの日付を変換するために、すなわち、>近いが、それは逆の操作を実行するには2016-08-09
する必要があります -
私がデバッグ、po theDate
は私に2016-08-08 22:00:00 +0000
を与えます(!) day of the year
に、私はこのコードを使用しています:...
NSDate *fullDate = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger dayOfYear = [gregorian ordinalityOfUnit:NSDayCalendarUnit
inUnit:NSYearCalendarUnit
forDate:fullDate];
をしかし、私は反対のことを行うために、適切な方法を見つけることができないよう
私はすべて動作する驚いています。日のコンポーネントはカレンダーに応じて解釈されます(正確にはどのように動作するかは不明です)。また、WRTは出力日付をデバッグします。 'po'はあなたのローカルタイムゾーンではなく、UTCで日付/時刻を表示すると考えていますか? – Droppy