2011-11-23 2 views
0

저는 지금 꽤 오래 앉아있었습니다. 나는 내가 뭘 잘못하고 있는지 알아낼 수있다.NSDateFormatter는 24 시간 형식을 무시합니다.

NSString * dateString = @"2011-11-21 13:00"; 
NSDateFormatter *serverDateFormatter = [[NSDateFormatter alloc] init]; 
[serverDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"]; 
NSDate *serverDate = [serverDateFormatter dateFromString:dateString]; 

NSLog(@"%@", serverDate); 

출력 : 왜 13시은 12 : 00

2011-11-21 12시 0분 0초 0000

을 변환됩니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

2

NSString * dateString = @"2011-11-21 23:20"; 
NSDateFormatter *serverDateFormatter = [[NSDateFormatter alloc] init]; 
[serverDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"]; 
[serverDateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
NSDate *serverDate = [serverDateFormatter dateFromString:dateString]; 
NSLog(@"%@", serverDate); 

OUTPUT :

2011-11-23 14 : 22 : 10.924 XXX [23,235 : 207] 2011-11-21 23시 20분 : 00 +0000

1

이 토론에서 대답을 찾을 수있을 것 같습니다. 분명히 NSDateFormatter는 사용자의 설정을 사용하는 것을 좋아하는데 이는 적절하지 않을 수 있습니다.

http://developer.apple.com/library/ios/#qa/qa1480/_index.html

나는이 대답은 당신이 강제로 원하는 인 24 시간의 동작을 정지 생각하지만.

당신은 setLocale 부분을 올바르게 가져오고 싶다고 말하고 싶습니다.

ETA : 여기이에 대한 몇 가지 추가 정보를 원하시면입니다 :이 코드는 장치가 12 시간 또는 24 시간 시간을하려고 여부를 감지 할 수

https://stackoverflow.com/q/7538489/290072

.

+0

dint work. NSLocale도 설정했습니다. 아직도 나에게 같은 결과를 준다 – Neelesh

+1

당신은 무엇에 그것을 설정 했습니까? – Almo

0

[serverDateFormatter stringFromDate : serverDate]를 통해 출력하는 경우 어떻게됩니까? ? 사용자는 시간대를 설정할 필요

관련 문제