2011-08-27 3 views
5

내 nib 파일에 NSDatePicker가 있습니다.NSDatePicker timezone weirdness

[datePicker setTimeZone:[calendar timeZone]]; 

난 단지 정말 시간에 대해 신경 (시, 분) 내가 프로그래밍 채우는 날짜 선택기에 : 제대로

NSDate *anyDate = [NSDate date]; 
     NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:anyDate]; 
     [components setHour:hours]; 
     [components setMinute:minutes]; 
     NSDate *newDate = [calendar dateFromComponents:components]; 
     [datePicker setDateValue:newDate]; 

이 코드에서, 나는 그것이 GMT 달력의 시간대로 시간대의 설정 날짜 선택기 시간을 원하는 시간으로 설정하는 데 필요한 효과가 있습니다. 따라서 시간이 8이고 분이 30이면 날짜 선택 도구가 8:30을 표시합니다. 그러나 날짜 선택 도구의 시간 필드에 8을 입력하면 3으로 표시됩니다. 어딘가에 이상한 일이있는 시간대가 있지만 어디 있는지 모르겠습니다.

+0

날짜 선택 도구에 날짜 포맷터가 연결되어 있습니까? – jtbandes

답변

8

첫 번째 사람이이 문제를 놓고 비틀 거리다. 관심있는 사람들을위한 해결책은 여기에서 찾을 수 있습니다. http://www.cocoabuilder.com/archive/cocoa/305254-nsdatepicker-weirdness-with-time.html. 날짜 선택 도구의 시간대는 설정하고 달력은 설정하지 않으면이 문제가 발생합니다. 해결 방법은 다음과 같습니다.

[datePicker setTimeZone:[calendar timeZone]]; 
[datePicker setCalendar:calendar]; 
+1

그냥 똑같은 문제를 해결하는 데 도움이되었습니다 - 결과를 게시 해 주셔서 감사합니다! –

+0

날짜 선택 도구의'locale'을 현재 로케일로 설정하는 것이 훨씬 간단하고 정확합니다. – matt