こちらの内容もちょくちょく使うので備忘録として記載します。
アプリ内で現在時間を取得する事があったり、サーバから取得した日時データを受信してNSDateに変換する事があり、NSDate同士の差分を取得する事があるので調査してみました。
※文字列と同じように取り扱う時間のインスタンスなので、扱い方をまとめておきます。
調べた結果
現在日時を取得
1 |
NSDate *now = [NSDate date]; |
NSStringとの相互変換
setDateFormatで文字列のフォーマットを指定する
1 2 3 4 5 6 7 8 9 |
//NSStringからNSDate NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"yyyy/MM/dd HH:mm:ss"]; NSDate *date = [df dateFromString:@"2017/01/01 00:00:00"]; //NSDateからNSString NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"yyyy/MM/dd HH:mm:ss"]; NSString *str = [df stringFromDate:[NSDate date]]; |
NSDate同士の比較
1 2 3 4 5 6 7 8 9 10 |
NSComparisonResult result = [date1 compare:date2]; switch(result){ case NSOrderedAscending: //比較するNSDateより前の日時(date1 < date2) break; case NSOrderedDescending: //比較するNSDateより後の日時(date1 > date2) break; case NSOrderedSame: // dateA = dateB //比較するNSDateと同じ日時(date1 = date2) break; } |
日付フォーマット
よく使う日付フォーマットです。
※各文字列は大文字と小文字を区別します。
yyyy:年(4桁)
MM:月
dd:日
HH:時刻
mm:分
ss:秒
Z:タイムゾーン
SSS:ミリ秒
よかったら参考にしてみて下さい。
下記の書籍を参考までに載せておきますね!