グレゴリオからヘブライ語
-
09-10-2019 - |
質問
グレゴリオの日付を同等のヘブライ日に変換する方法は?また、これらのカレンダーについてはあまり知識がないので、これらのカレンダーについて教えてください。
解決
便利なクラスが呼ばれています NSCalendar
. 。あなたはこのようなものを作成します:
NSCalendar * gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSCalendar * hebrew = [[NSCalendar alloc] initWithCalendarIdentifier:NSHebrewCalendar];
カレンダーオブジェクトを入手したら、それらを使用して日付をさまざまな表現に変換できます。
NSDate * date = [NSDate date];
NSDateComponents * components = [gregorian components:NSUIntegerMax fromDate:date];
NSDate * hebrewDate = [hebrew dateFromComponents:components];
NSLog(@"date: %@", date);
NSLog(@"hebrew: %@", hebrewDate);
私のマシンでは、これはログを記録します。
date: 2011-01-09 23:20:39 -0800
hebrew: 1751-09-25 23:20:39 -0800
ものをより読みやすい形式に変換する場合は、使用します NSDateFormatter
:
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterLongStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setCalendar:gregorian]; //this is usually unnecessary; it's here for clarity
NSLog(@"date: %@", [formatter stringFromDate:date]);
[formatter setCalendar:hebrew];
NSLog(@"hebrew: %@", [formatter stringFromDate:hebrewDate]);
[formatter release];
これはログ:
date: January 9, 2011
hebrew: Tishri 9, 2011
それはそう思われます NSDateFormatter
グレゴリオの日付を使用していますが、少なくとも適切な月の名前がありますよね?
編集
実際、私は間抜けでした。のカレンダーを設定するだけの場合 NSDateFormatter
, 、日付を変換することを心配する必要はありません。見る:
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterLongStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setCalendar:hebrew];
NSLog(@"hebrew: %@", [formatter stringFromDate:[NSDate date]]);
[formatter release];
これはログ:
hebrew: Shevat 4, 5771
ずっといい!ココアは素晴らしいものではありませんか?
所属していません StackOverflow