- 追加された行はこの色です。
- 削除された行はこの色です。
&tag(Objective-C/日付と時刻);
*目次 [#y0f4babe]
#contents
*参考情報 [#d92e67e8]
-[[文字列からNSDate型に変換する: iPhoneアプリ開発備忘録:http://iphone-app-developer.seesaa.net/article/134688683.html]]
-[[FirstResponder:NSDateをNSStringにしたい - livedoor Blog(ブログ):http://blog.livedoor.jp/firstresponder/archives/50089841.html]]
-[[NSDateFormatter - 文字列と日付の変換 - 強火で進め:http://d.hatena.ne.jp/nakamura001/20100525/1274802305]]
*NSDateを生成する [#r51cfa92]
**現在の日付 [#db22e7a0]
[NSDate date]]
[NSDate date]
**文字列から生成する [#le6b5693]
#pre{{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeStyle:NSDateFormatterFullStyle];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZ"];
NSDate *date = [formatter dateFromString:@"2009-12-05T20:26:00+09:00"];
}}
*NSDateを文字列に変換する [#t1115f69]
**NSDateFormatterを使う [#r99d5b68]
#pre{{
NSDateFormatter *formatter = [[[NSDateFormatter alloc]
initWithDateFormat:@"%Y/%m/%d %H:%M:%S"
allowNaturalLanguage:FALSE] autorelease];
NSDate* date = [NSDate date];
NSString* dateStr = [formatter stringFromDate:date];
}}
*日付の計算を行う [#a9ee54c9]
**日付の差を取得する [#j18f7db5]
-[[NSDate - 日付の計算、過去の日や末日を求める方法 - 強火で進め:http://d.hatena.ne.jp/nakamura001/20100609/1276101689]]より。dateB > dateAで計算しないと正の数が帰ってこないらしい。
#pre{{
NSDateFormatter *inputDateFormatter = [[NSDateFormatter alloc] init];
[inputDateFormatter setDateFormat:@"yyyy/MM/dd HH:mm:ss"];
NSDate *dateA = [inputDateFormatter dateFromString:@"2000/03/01 00:00:00"];
NSDate *dateB = [inputDateFormatter dateFromString:@"2000/03/03 00:00:00"];
// dateBとdateAの時間の間隔を取得(dateB - dateAなイメージ)
NSTimeInterval since = [dateB timeIntervalSinceDate:dateA];
NSLog(@"%f秒", since);
NSLog(@"%f分", since/60);
NSLog(@"%f時", since/(60*60));
NSLog(@"%f日", since/(24*60*60));
[inputDateFormatter release];
}}