2011-01-10 11 views
3

グレゴリオ暦の日付を同等のヘブライ日付に変換するにはどうすればよいですか? また、私はこれらのカレンダーについて多くの知識がないので、これらのカレンダーについて教えてください。グレゴリオ暦からヘブライ語

答えて

13

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はグレゴリオ暦の日付を使用していますが、少なくともそれは、右の右の月の名前を持っているように見えるでしょうか?

編集

実は、私はgoofed。 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 

はるかに良いです!ココアは素晴らしいのではないですか?

+2

ティシュレイは市民の年の最初の月です(教会の年とは対照的に)、それはちょうどヘブライの日付として2011-01-09と解釈されたようです。おそらく、日付コンポーネントを抽出する最初の例に行くのは良い考えではありません。 2番目の例は正しいです、2011年1月9日はSh'vat、5771の4番目です。 – dreamlax

+0

@dreamlaxが合意しました。日付コンポーネントを抽出することは、相対的な計算が必要な場合にのみ行うことです。 –

+0

urxのためのthanx。 – iPhoneDev

関連する問題