2011-04-05 1 views
1

내가 dateComponents과 날짜를 정교하게해야한다 :NSCalendar의 dateWithComponents가

int year; 
int month; 
int day; 
int hour; 
int minute; 
int second; 
NSCalendar *calendar; 
NSDate *actualDate; 
NSDate *itemDate; 
NSDateComponents *dateComps; 
NSDateFormatter *dateFormatter; 
UILocalNotification *sveglia; 

actualDate = [NSDate date]; 
calendar = [[NSCalendar currentCalendar] copy]; 
dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeZone:[calendar timeZone]]; 
[dateFormatter setDateFormat:@"yyyy"]; 
year = [[dateFormatter stringFromDate:actualDate] intValue]; 
[dateFormatter setDateFormat:@"MM"]; 
month = [[dateFormatter stringFromDate:actualDate] intValue]; 
[dateFormatter setDateFormat:@"dd"]; 
day = [[dateFormatter stringFromDate:actualDate] intValue]; 
[dateFormatter setDateFormat:@"HH"]; 
hour = [[dateFormatter stringFromDate:actualDate] intValue]; 
[dateFormatter setDateFormat:@"mm"]; 
minute = [[dateFormatter stringFromDate:actualDate] intValue]; 
[dateFormatter setDateFormat:@"ss"]; 
second = [[dateFormatter stringFromDate:actualDate] intValue]; 
dateComps = [[NSDateComponents alloc] init]; 
[dateComps setTimeZone:[calendar timeZone]]; 
[dateComps setDay:day]; 
[dateComps setMonth:month]; 
[dateComps setYear:year]; 
[dateComps setHour:hour]; 
[dateComps setMinute:minute]; 
// Obtaining date from components. 
itemDate = [calendar dateFromComponents:dateComps]; 
NSLog(@"ItemDate: %@", itemDate); 

일정은 올바른 시간대를 가지고, 날짜의 모든 구성 요소는 권리입니다. 글쎄, 내가 무엇을해도 itemDate 객체는 그리니치 타임 존 (+0000)을가집니다. 이 문제를 어떻게 해결해야합니까?

답변

2

해결 된 날짜 ... 날짜가 정확했던 이래로 문제가 존재하지 않았으므로 NSDate 설명은 항상 GMT 시간의 출력을 제공합니다. 올바른 형식을 보려면 descriptionWithLocale을 사용해야합니다. 설명서의 내용을 확인하십시오. 대답 당신이 그것을 해결하는 경우

Source

+0

는 질문을 표시하는 것을 잊지 마세요! – Ermiar

+0

나는 하겠지만 내일까지는 안돼. :) – IssamTP