また、NSDateは以前書いた通り世界で一意の値であるグレゴリオ暦(世界標準時)を格納するので、NSStringで表示する際はローカル時刻に変換 する必要があります。
そこで、NSDateFormatterクラスを使えば、より簡単に書式指定を行うことができます。
// 現在日時を取得
NSDate* dt = [NSDate date];
// NSDateFormatterのインスタンス生成
NSDateFormatter* form = [[NSDateFormatter alloc] init];
// NSDateFormatterに書式指定を行う
[form setDateFormat:@"G yyyy/MM/dd(EEE) K:mm:ss"];
// 書式指定に従って文字出力
NSString* str = [form stringFromDate:dt];
NSLog(str);
// NSDateFormatterはallocで確保したので明示的に解放する
[form release];
strには”AD 2010/05/06(Thu) 10:07:50”と格納されます。ちゃんと曜日も取得できてますね。
書式指定できるものには、以下のようなものがあります。
G | 時代(AD等) |
yy | 年の下2桁 |
yyyy | 年(4桁) |
MM | 月(1〜12) |
MMM | 月(Jan) |
MMMM | 月(Janualy) |
dd | 日(2桁) |
d | 日(1〜2桁) |
EEE | 曜日(Sun等) |
EEEE | 曜日(Sunday等) |
aa | AM/PM |
H | 時(0〜23) |
K | 時(0〜11) |
m | 分(1〜2桁) |
mm | 分(2桁) |
s | 秒(1〜2桁) |
ss | 秒(2桁) |
S | ミリ秒 |
0 件のコメント:
コメントを投稿