Próbuję uzyskać aktualną datę dodając strefę czasową urządzenia, ale jest wyświetlana o 1 godzinę później niż oryginalna data. Chodzi mi o to, że mam problem z DaylightSavingTime. Jak wyłączyć isDaylightSavingTime = FALSE.Jak uzyskać aktualny NSDate sam do symulatora Data? iPhone Sdk
Oto kod, użyłem ..
NSDate *date = [NSDate Date];
NSTimeZone *currentTimeZon = [NSTimeZone localTimeZone];
if ([currentTimeZon isDaylightSavingTime])
{
NSLog(@"East coast is NOT on DT");
}
else
{
NSLog(@"East coast is on DT");
}
NSTimeInterval timeZoneOffset = [currentTimeZon secondsFromGMTForDate:currentDate];
NSTimeInterval gmtTimeInterval = [date timeIntervalSinceReferenceDate] - timeZoneOffset;
NSDate *gmtDate = [NSDate dateWithTimeIntervalSinceReferenceDate:gmtTimeInterval];
NSLog(@"### Announcement gmtDate = %@",gmtDate);
mam czasu z różnicą 1 godzinę coraz data jest perfact.
Jest tylko jeden NSDate dla każdej chwili (nie ma znaczenia, gdzie jesteś). Jeśli chcesz wydrukować datę w innej strefie czasowej, użyj NSDateFormatter. –
Tak, ale chcę funkcji ogólnej, która automatycznie zmieni się zgodnie ze zmianą strefy czasowej. pojawia się problem, gdy isDaylightSavingTime = FALSE. więc chcę ustawić isDaylightSavingTime = TRUE, ale nie mogę tego zrobić – Sujal