時間フォーマットとか | ゆぅさんのiPhone開発技術関連ブログ

ゆぅさんのiPhone開発技術関連ブログ

iPhone開発についての技術まわりのことを切り出して書き込みします。

時間フォーマットとかについてめもめも

時刻を扱うときは、NSDateクラスを使う。
今回は、時間をフォーマットして文字列にするとこをまとめ。

まず、NSDateのつくりかた。


現在時刻から作る場合

NSDate* dt = [NSDate date];

普通にクラスを作る感じでOK




現在時刻からの差で作る場合

NSDate* dt = [NSDate dateWithTimeIntervalSinceNow:24*60*60];

dateWithTimeIntervalSinceNowを使って、現在時刻からの差を秒数を指定。
一日後なら24*60*60=86400秒
一日前ならマイナス値にして、-24*60*60=-86400秒
を設定。




日付をフォーマットするには、NSDateFormatterクラスを使う。
この子にフォーマットを指定して文字列にしてもらう。

現在時刻を"年月日時分秒"の形にするサンプル

NSDate* dt = [NSDate date];
NSDateFormatter* fmt = [[NSDateFormatter alloc]init];
[fmt setDateFormat:@"yyyyMMddHHmmss"];
NSLog(@"%@", [fmt stringFromDate:dt]);



結果

2012-03-24 01:30:36.087 Sample120222[22242:207] 20120324013036



setDateFormatでフォーマットを指定してるのだけど、このフォーマットについて
まとめます。
とりあえず、今回の"yyyyMMddHHmmss"を例に。
yは年、で、4桁なので、4文字並べてyyyy
同じように、Mが月、2桁なので、MM、あとは、同じように
dが日、Hが時間、mが分、sが秒、それぞれ2桁なので、2回繰り返す。
で、"yyyyMMddHHmmss"とすると"年月日時分秒"となるのです。



このページを参考にしてください、ってドキュメントに書いてました。
これ以外のフォーマットに使うアルファベットについてとか書いてあります。
http://unicode.org/reports/tr35/tr35-10.html#Date_Format_Patterns