iOS 프로젝트의 시간 변환

2154 단어
최근에 프로젝트에서 원격 전송의 논리를 수정할 때 회사의 원격 전송은 이렇게 하는 것을 발견했다. 1. 원격 전송을 설정하지 않고 로컬 전송만 설정했다.2. 프로그램이 활성화 상태가 된 후에 프로그램은 서비스 측 데이터(백그라운드에 설치된 전송 정보)를 요청하여 모든 정보를 원가로 전송한다.3. 시간이 되면 푸시합니다.
그럼 문제가 생겼는데 미루어 보냈으면 어떡하지?그래서 시간 대비를 해서 모든 요청한 데이터의 전송 시간과 현재 시간을 비교하고 과거에는 로컬 전송을 설정하지 않았다.
1. 시간 형식 변환
//     NSDateFormatter  
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//      ,              ,hh HH   :    12   ,24   
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
// [NSDate date]          
NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];
//     :2010-10-27 10:22:13
NSLog(@"%@",currentDateStr);

//              
NSString* string = @"2013-07-16 13:21";
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSDate* inputDate = [inputFormatter dateFromString:string];

//     
NSString *timeSp = [NSString stringWithFormat:@"%f", [datenow timeIntervalSince1970]];
NSLog(@"%@",timeSp);
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:1];
NSLog(@"%@",confromTimesp);
NSString *confromTimespStr = [formatter stringFromDate:confromTimesp];
NSLog(@"%@",confromTimespStr);

//         :
NSString *str=@"1368082020";//   
NSTimeInterval time=[str doubleValue];
NSDate *detaildate=[NSDate dateWithTimeIntervalSince1970:time];
NSLog(@"date:%@",[detaildate description]);

 //       
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
[formatter setTimeZone:timeZone];
NSDate *date = [formatter dateFromString:timeStr];

2. 날짜 간의 비교
- (BOOL)isEqualToDate:(NSDate *)otherDate;
 otherDate  ,    YES

- (NSDate *)earlierDate:(NSDate *)otherDate;
 otherDate  ,         

- (NSDate *)laterDate:(NSDate *)otherDate;
 otherDate  ,         

- (NSComparisonResult)compare:(NSDate *)other;
          :
            otherDate     NSOrderedSame
             otherDate   NSOrderedDescending
             otherDate   NSOrderedAscending

시간대 설정에 대해서도 저는 모호합니다. 시간이 있으면 잘 테스트하고 글을 업데이트하세요!

좋은 웹페이지 즐겨찾기