2011-09-25 6 views
1

NSDateFormetter 문제가 하나의보기에서 선택기에서 변환잘못된 날짜 문자열에서 formater 반환합니다! 왜?

`NSDateFormatter *output = [[NSDateFormatter alloc] init]; 
[output setDateStyle:NSDateFormatterMediumStyle]; 
[output setDateStyle:NSDateFormatterShortStyle]; 
[output setDateFormat:@"yyyy-MM-dd hh:mm:ss"];  
NSString *StringToSend = [output stringFromDate:datePicker.date]; 

다음 다른 코드를 문자열 보내기

여기서 그 코드로 다시 변환

및 it 's 잘못된 날짜를 반환 보내기 2011-09-26 01:02:49 geting 2011-09-25 22:02:49 +0000

무엇이 잘못 되었나요?

+2

왜 설정하는 MediumStyle 후 짧은 스타일? 그런 다음 명시적인 날짜 형식을 지정합니다. 중복 부서 (Department of Redundancy Department)의 출력과 비슷합니다. –

+0

"중복 부서". 들썩 들썩 한! – Hahnemann

답변

0

날짜 형식 문자열에 시간대를 포함하십시오.

+0

[여기] (http://stackoverflow.com/questions/6613110/what-is-the-best-way-to-deal-with-the-nsdateformater-locale-feature)를 참조하십시오. 시간대 설정 외에도 로켈을 설정해야합니다. 좋은 답변을 위해 –

5

때문에 :

  1. 때 GMT
  2. 당신 3 시간 앞서 GMT의의의 시간대에 살고있는 당신 NSLog()NSDate, 그것은 항상 로그 그것. 따라서 오전 1시 2 분은 GMT 기준 오후 2시 2 분 (전날)입니다.
+0

+1 ..! 날마다 나는 너의 팬이되어 가고있다. 나는 너에게 바라본다. 내가 언젠가 너와 같은 지식이 될 수 있다면 나는 큰 성공을 거둘 것이라고 생각한다.] –

0
+ (NSDate*) dateFromString:(NSString*)aStr 
{ 

    if (aStr.length == 10) { 
    aStr = [aStr stringByAppendingFormat:@" 00:00:00"]; 
} 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"MM-dd-yyyy HH:mm:ss"]; 
    dateFormatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 
    NSLog(@"strdate %@", aStr); 
    NSDate *aDate = [dateFormatter dateFromString:aStr]; 
    NSLog(@"date = %@",aDate); 
    [dateFormatter release]; 
    return aDate; 

}

관련 문제