2016-10-20 2 views
1

nsdate에서 시간 : 분 AM/PM을 가져 오려고합니다. 20/10/16, 오후 2시 3분 0초 인도 표준시HH : MM am/pm이 nsdate에서 가져 오지 않음

예상 결과는 형식으로있는 NSString됩니다 : 나는 점점 오전

NSDate *globalDateTime; //globaldate is : 2016-10-20 06:49:00 +0000 (UTC) 
NSString *dateString12 = [NSDateFormatter localizedStringFromDate:globalDateTime 
                  dateStyle:NSDateFormatterShortStyle 
                  timeStyle:NSDateFormatterFullStyle];  
    NSLog(@"%@",dateString12); 

결과는 NSString 형식 20/10/16, 6시 49분 : 정오 인도 표준시

또는이 어떤 식 으로든 내가에만 얻을 수있는 NSString 형식의 예상되는 결과 : 오후 6시 49분

dateString12 NSLog에서 얻을 수있다 UTC 형식 또는 다른 형식 일입니다. 그것은 나에게 적절한 날짜를 주지만 나에게 적절한 시간을주지 않는다.

어떻게하면 적절한 시간을 가져야하는지 도와주세요.

+1

코드에 아무런 문제가 없습니다. 'dateString12'는 현지 시간입니다. 그게 네가 원하는거야, 맞지? – rmaddy

+0

@rmaddy 예. 그러나 나는 현지 시간을 얻지 못하고있다. 나는 그것이 UTC 또는 다른 형식으로 변환하고 있다고 생각한다. –

+0

현지 시간이 있습니다. 이것이 NSDateFormatter가 기본적으로하는 것입니다. 'globalDateTime'의 값을 볼 때 인도 시간이 아닌 UTC 시간의 값을 보게됩니다. 'dateString12'의 값은 여러분이 코드를 실행하는 어떤 장치에 대해서도 현지 시간이 될 것입니다. – rmaddy

답변

1

시도해보십시오.

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"hh:mm a"];// change here as per your need 
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 
NSString *stringFromDate = [formatter stringFromDate: globalDateTime]; 
+1

아니요, 답이 틀리면 nil을 반환합니다 –

+0

@KKRocks 이것을 시도했습니다. 그것은 나를 무의미한 가치를 준다 –

+0

나는 또한이 코드를 시도했다. 잘 작동합니다. 여기에 screeshot을 업로드합니다. – KKRocks