月の文字列を取得する
しまった……。 昨日は同窓会とかの兼ね合いで名古屋に帰っていて、
今日徹夜で東京に戻ってきたところです。
普段なら下書きで1日分作っておいてスマートフォンから反映するんですが、失念していました。
さて、表題のことについて。
これも結構良く使う割に、よく忘れるので書いておきます。
このTipsでの目標は、たとえば
「1」という数値があった時に、ある標準関数を通すことで
「1月」または「Janualy」という値を取得することを目的とします。
応用すれば、「Jan」などの略称も取得できた気がします。
int month = 1; // 月を表す数字 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"ja_JP"] autorelease]]; NSArray *monthSymbols = [dateFormatter monthSymbols]; NSLog(@"monthSymbols: %@", [monthSymbols objectAtIndex:month - 1]); [dateFormatter release];
たとえばこの場合だと、「monthSymbols: 1月」と表示されるはずです。
これの「NSLocale」で指定しているinitWithLocaleIdentifierを「en_US」としてやることで
表示される文字列は「monthSymbols: Janualy」と変わります。
また、取得するNSArrayを「shortMonthSymbols」とすることで「Jan」などの省略名称も
取得することができます。
日付の表現というのはいろいろなところで出てくるので、
覚えておくのも便利です。
別にdateFormatterは1つしか指定してはいけないわけではないので
NSLocaleで「ja_JP」を指定したものと、「en_US」を指定したものを用意しておくと
状況に応じて表現方法も変更できたりします。 要は、使い方次第。