거주 국가 내 기타 국가는 GMT + 0입니다. 우리는 일광 절약 시간에 있기 때문에 지금 +1 시간입니다.iPhone - 현재 일광 절약 시간제
내가 할 때
[NSDate date];
가 현재 날짜와 시간을 반환하는데,하지만 난 그렇게 할 때, 나는 GMT 시간이 일광 절약을 고려하지 받게되었다.
이것은 문서가
작성해 현재 날짜와 시간을 설정 새로운 날짜를 반환 date 명령에 대해 말할 것입니다.
왜 애플이 그렇게합니까? 왜 모든 것이 그렇게 복잡합니까? 이거 버그 야? 기기가 켜져있는 현재 실시간을 가져 오는 방법이 있습니까? 기기의 시계에 표시되는 시간과 동일합니까?
내 앱은 날짜와 시간에 따라 다르며 전 세계 다른 시간대 (예 : 여름 또는 겨울)에있는 사용자가 잘못된 날짜를 사용하면 재앙이 발생합니다.
감사합니다.
NSDate *wrongToday = [NSDate date];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
NSString *currentTime = [dateFormatter wrongToday];
NSDate *today = [dateFormatter dateFromString:currentTime];
는 오늘 = wrongToday ... 즉 가, 변화, 내가 가진 무엇을 계속 추측한다 : 몇 가지 답변 후, 나는이 코드를 시도 EDIT
일광 절약 시간제가 잘못된 날짜입니다. 더 놀라운 것은 currentTime이 NSString에서 일광 절약 시간제를 사용하여 날짜를 표시한다는 것입니다 ...
모든 단서가 있습니까? 다시 한 번 감사드립니다.
NSDate 개체는 절대 시간을 나타냅니다. 일광 절약 시간제 또는 시간대에 의해 영향을받지 않습니다. 특정 시간대의 날짜를 출력하려면 NSDateFormatter의 인스턴스를 만들어야합니다. – albertamg
미안하지만, Apple docs는 [NSDate date]가 현재 날짜와 시간을 반환한다고 말합니다. 이것은 사실이 아닙니다. 현재 날짜와 시간은 일광 절약 시간을 고려해야합니다. – SpaceDog
표준 시간대 및 일광 절약 시간제는 현지화 문제입니다. 문서는 GMT를 여러 곳에서 언급하지만 분명히 명확해질 수 있습니다. – MRAB