2016-08-11 1 views
-1

iOS 앱을 개발중인 MacBook &을 실제 iPhone에서 실행하고 있습니다.[NSDate date]를 사용하여 현재 시간을 가져 오지만 반환 값이 잘못되었습니다.

: 모두 내 맥북 & 내 아이폰은 나에게 현재 시간을 2016년 8월 11일 13시 18분

있다 그러나 동시에, 다음 코드 나에게 3시간 이전 지금보다 현재 시간을 보여줍니다 보여

NSLog(@"NOW = %@",[NSDate date]); // it prints out 2016-08-11 10:18:17 +0000 

그러나 NSDate 설명서는 +date 함수가 현재 날짜와 시간을 반환한다고 알려줍니다. 왜 내가 3 시간 전에 날짜 시간을받는거야?

+0

날짜를 인쇄하면 UTC (+0000)로 표시됩니다. 나는 당신이 시간대에있는 것 같아요 UTC보다 3 시간 늦은 – Paulw11

답변

0

NSLog을 사용하여 NSDate을 기록하면 항상 UTC로 표시됩니다. 사용자가 UTC + 3 시간대에있는 것처럼 들리므로 UTC로 표시된 시간은 3 시간 더 일찍 나타납니다.

현지 시간대로 날짜를 표시하려면 날짜 포맷터를 만들어 대신 날짜를 표시하십시오. (문제의 기본 날짜는 사용자의 현지 시간대를 사용합니다.)

NSDate에는 고유 한 시간대가 없습니다. NSDate는 즉시 기록합니다. 그것을보기 위해서는 시간대를 사용해야합니다.

날짜가 정확합니다. 혼란스러운 방식으로 표시하고 있습니다.

+0

내 아이폰의 현재 시스템 시간과 같은 날짜를 어떻게 만들 수 있습니까? –

+0

다른 사람들과 연결된 중복 질문을보십시오. –

+0

그것은 현재 시간에 대한 NSDate를 만드는 방법을 말하지 않고 단지 원하지 않는 dateformatter를 사용한다고 말합니다. –