2012-05-04 2 views
0

저는 iWorld의 iOS 개발자입니다. 이전에 여러 iPhone/iPad 앱을 개발했습니다. iPhone에서 정확한 시간 정보를 여러 번 가져올 수 없습니다. 로컬 리 제이션 때문인 것 같습니다.시간대 또는 시간대 차이가없는 시간 가져 오기

예를 들어, 오늘 시간을 절약 할 수있는 코드가 있습니다. (예 : "05-04-2012 00:00:00") 하지만이 코드는 예상 한 시간보다 항상 8 시간 전에 반환됩니다. (예 : "2012년 5월 3일 16시 0분 0초) 코드 내가 일한 다음과 같습니다에 대한

NSDate *today = [NSDate date]; 
NSCalendar *calender = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDateComponents *components = [calender components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:today]; 
today = [calender dateFromComponents:components]; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MM-dd-yyyy hh:mm:ss"]; 
NSString *todayString = [formatter stringFromDate:today]; 
NSLog(@"Today is %@", todayString); 
나는이 문제를 해결하기 위해 당신에게서 듣고 싶습니다

감사합니다.. . 시간 UTC에

+0

그럼 몇 시까 지 기대하십니까. 현지 시간 또는 UTC? – trojanfoe

+0

올바른 자정을 알고 싶습니다. 데이터베이스 날짜와 날짜를 비교해야하기 때문에. 예를 들어, 오늘은 05-04-2012 00:00:00과 05-05-2012 00:00:00 사이에있는 오늘의 레코드를 찾아야합니다. – Pei

+0

로컬 타임이나 UTC를 원하십니까? – trojanfoe

답변

0

나는 올바른 자정 시간을 계산하는 코드를 발견했습니다 지금 내가 오늘 "코드 로그를 다음을 2012년 5월 7일 00:00 것을 찾을 수 있습니다. : 00 "보다는"05-06-2012 16:00:00 "

NSDate *today = [NSDate date]; 
NSCalendar *calender = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDateComponents *components = [calender components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:today]; 
today = [calender dateFromComponents:components]; 

today = [today dateByAddingTimeInterval:[[NSTimeZone localTimeZone] secondsFromGMT]]; 

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MM-dd-yyyy hh:mm:ss"]; 
NSString *todayString = [formatter stringFromDate:today]; 
NSLog(@"Today is %@", todayString); 

감사합니다.

0

설정 시간대는

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; 
    [dateFormatter setTimeZone:timeZone]; 
+1

그는 현지 시간을 원합니다. [NSTimeZone localTimeZone] – lnafziger

+0

아를 충분히 읽지 않았습니다. 그래, lnafziger가 말한거야. –

관련 문제