如何将当前的NSDate与模拟器日期相同? iPhone Sdk

时间:2011-08-17 11:54:47

标签: iphone

我正在尝试通过添加设备时区获取当前日期,但是在原始日期晚1小时显示。我的事,我遇到了DaylightSavingTime的问题。 如何禁用isDaylightSavingTime = FALSE。

这是代码,我用过..

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);

我有时间与1小时差异,日期是完美的。

1 个答案:

答案 0 :(得分:1)

使用NSCalendar,它了解时区,夏令时等。正如@albertamg所说,NSDate只是自UTC(GMT)引用以来的时间,它没有其他概念。