仏教暦からグレゴリオ暦への日付の変換をサポートするアプリを作成しています (注: テストしているデバイスの「一般 > 国際 > カレンダー」設定は「仏教」です)。ただし、NSDateFormatter が日付を適切に解析しない理由がわかりません。これが私のコードです:
NSDate *now = [NSDate date];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.calendar = gregorianCalendar;
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss Z";
NSString *formattedDate = [formatter stringFromDate:now];
NSDate *boomDate = [formatter dateFromString:formattedDate];
NSLog(@"now: %@, formattedDate (as string) > %@, boomDate (as date) > %@", now, formattedDate, boomDate);
Xcode のログには次のように書かれています。
now: 2556-05-23 07:11:03 +0000, formattedDate (as string) > 2013-05-23 15:11:03 +0800, boomDate (as date) > 2556-05-23 07:11:03 +0000
(NSString) を NSDate に変換しているときにformattedDate
、プロパティを適切に設定しても (特に )、NSDateFormatter が仏暦形式に従って解析するのはなぜですかformatter.calendar
。formattedDate
グレゴリオ暦形式の NSDate として変換する必要があります。そのロジックに基づいて、 NSDateFormatter がグレゴリオ形式の日付を提供することを期待していますが、そうではありません。
基本的に、仏教徒の NSDate からグレゴリオ暦の形式に従う NSDate が必要です。
何か案は?