본문 바로가기

iOS

NSDate 대해서

1. 현재 시간 가져오기

NSDate * date = [NSDate new];


date에는 현재시간, 날짜가 들어있다.


2. 원하는 NSString으로 가져오기

    NSDate * date = [NSDate new];

    NSDateFormatter * forMatter = [NSDateFormatter new];

    [forMatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];

    NSString *dateStr = [forMatter stringFromDate:date];


dateStr은 2015-05-06 20:43:30.000 이런식으로 나올것이다

중간중간에 원하는 문자를 넣고싶으면 포멧형식사이에 '문자'를넣으면된다.

 [forMatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];

2015-05-06T20:43:30.000Z 


3. 현재시간 기준으로 날짜 구하기

NSTimeInterval secondsPerDay = 24 * 60 * 60;

NSDate *today = [NSDate date]; NSDate *tomorrow, *yesterday;

NSDate *tomorrow = [[NSDate alloc] initWithTimeIntervalSinceNow:secondsPerDay];

NSDate *yesterday = [[NSDate alloc] initWithTimeIntervalSinceNow:-secondsPerDay];


내일 날짜와 어제날짜를 가져올수있다. secondsPerDay에 * 날짜 를하면 50일이뒤, 100일뒤 날짜를 알수있다.


4. 날짜 사이 기간 구하기

NSDateFormatter *dateFormatter = [NSDateFormatter new];

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss.SSS"];

NSDate *date1 = [dateFormatter dateFromString:@"2015-05-07 16:15:00.000"];

NSDate *date2 = [dateFormatter dateFromString:@"2015-05-08 17:15:00.000"];

NSTimeInterval diff = [date2 timeIntervalSinceDate:date1];


diff에 이 두 날짜 비교값인 90000이 찍힌다 계산을 해보면 1일 1시간이 될것이다.


5. 그밖에 날짜 관련 주의할사항

ios8부터 버그인지는 모르겠으나 디바이스에서 시간을 가져올때 디바이스 환경설정에 24시간표시 타입으로 인해 오류가 종종 발생한다. 그렇기 때문에 date를 가져올떄 1970년기준으로 가져다 쓰는게 좋다. 그렇게 사용하기 싫다면 밑에와같이 조건을 나누어 코딩을 해야할것이다.


NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

[formatter setLocale:[NSLocale currentLocale]];

[formatter setDateStyle:NSDateFormatterNoStyle];

[formatter setTimeStyle:NSDateFormatterShortStyle];

NSString *dateString = [formatter stringFromDate:[NSDate date]];

NSRange amRange = [dateString rangeOfString:[formatter AMSymbol]];

NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]];

BOOL is24h = (amRange.location == NSNotFound && pmRange.location == NSNotFound);



더궁금한점이나 질문있으시면 댓글 남겨주세요





'iOS' 카테고리의 다른 글

[swift] iOS 주소 찾기  (0) 2017.11.15
앱스토어 버전 가져오기  (0) 2015.09.11
iOS AudioSession 공부중....  (0) 2015.05.28
apple mapKit 사용방(구글이 안해주는 길찾기기능 포함)  (0) 2015.04.30
iBeacon api 사용법  (0) 2015.04.30