2013-06-05 6 views
0

나는 GMT +5.30 시간 인 인도에 거주하고 있습니다. 시스템 시간을 인쇄하면 현재 시간이 표시됩니다. 그러나이 코드를 사용하면 GMT 시간이 사용됩니다!GMT 시간을 반환하는 NSDate

코드 예제 : 시스템 시간은 지금 오후 11시 34분이

NSDate *now = [NSDate date]; 
NSDate *tomorrow = [now dateByAddingTimeInterval:24 * 60 * 60]; 
NSDate *dayaftertomorrow = [now dateByAddingTimeInterval:48 * 60 * 60]; 

NSLog(@"Tomorrow, the date will be %@" , tomorrow); 
NSLog(@"Day after tomorrow, the date will be %@" , dayaftertomorrow); 

입니다 그러나 콘솔 프린트 아웃 :

2013년 6월 5일 23 : 35 : 02.577 PROG1 [1601 : 303] 내일 날짜가 될 것이다 2013년 6월 6일 18시 5분 2초 +0000 2013-06 -05 23 : 35 : 02.578 prog1 [1601 : 303] 내일 이후, 날짜는 2013-06-07입니다. 18:05:02 +0000

답변

4

NSDate 개체를 만든 후에는 다음을 사용해야합니다. NSDateFormatter 메서드 stringFromDate : 특정 시간대로 현지화 된 날짜 문자열을 생성합니다.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 

NSLog(@"Now: %@", [dateFormatter stringFromDate:[NSDate date]]); 

다른 시간대 이런 NSTimeZone 찾을 수 있습니다 : 방금있는 NSDate에 직선 NSLog()를 할 경우 당신은 NSDateFormatter이 작업을 수행 할 수 있습니다

+2

명확히하기 : NSDate 객체는 시간대와 상관없이 선형 시간의 순간을 나타냅니다 *. 인쇄하거나 어딘가에 표시하면 일부 시간대의 어떤 요일과 시간이 그 순간을 나타내는지를 인쇄합니다 (예 : "GMT에서는 6 월 6 일 18시 5 분"). 사용자를 포함하여 특정 시간대에 인쇄하거나 표시하려면 해당 시간대를 사용하도록 설정 한 날짜 형식기를 사용하십시오. –

2

기본적으로 GMT로 날짜를 표시합니다 객체 :

NSLog(@"Timezones: %@", [NSTimeZone knownTimeZoneNames]); 

희망이 있습니다.

+0

대단히 감사합니다! 건배! :) – methi1999

관련 문제