14:44和暦*1とか使ってないから気付かなかったけど、和暦環境限定の不具合を出してしまいました。いうアプリでは、特定の日をベースにして1年毎のNSDateを取得して諸々やってる部分があります。日付を計算するのにNSDateComponentsを使うと便利でして、その辺りのコードが以下のような感じになっています。dateFromComponents:components];baseDateから80年分の日付オブジェクトを生成してるんですね。NSYearCalendarUnit,NSMonthCalendarUnit,NSDayCalendarUnitの3つを指定してるので、年月日の年の部分だけを変更したモノが得られます。「時分秒」は指定してないので、baseDateの時刻がいくつであってもdateFromComponentsが返すNSDateは00時00分00秒になります。西暦の場合はこれで何の問題もないのですが、和暦を使ってる場合は元号の値も固定しないと意図した通りに動かない可能性があります。baseDateを昭和54年にした場合でもdateFromComponentsが返す時は元号が平成になるようなので、year++すると平成55年にジャンプします。これを解決するには、NSDateComponentsにNSEraCalendarUnitを追加しておくだけです。fromDate:baseDate];これで元号もbaseDateのものが使われるようになるので、晴れて問題は解決となりました。前々からeraってなんだろうなと思ってたんですけど、元号のことだったんですね。わかってみればなんてことはないけど、ぜんっぜん気付きませんでした。岸川さんが教えてくれたんですが、NSCalendarにlocaleを指定すれば西暦のままで計算できるようです。title最初の例を直すと、以下のような形でうまく動くようになりました。みたい値を直接代入したい場合は元号がからむと厄介なので、このやり方はいいですね。勉強をしながらソフト開発をしているオレの記録。