我得到的日期和時間與這一空白:NSDateFormatter給我回格林威治時間
-(void)getDay
{
NSDate *choice = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
[dateFormatter setDateFormat:@"yy"];
year = [[dateFormatter stringFromDate:choice] intValue];
[dateFormatter setDateFormat:@"MM"];
month = [[dateFormatter stringFromDate:choice] intValue];
[dateFormatter setDateFormat:@"dd"];
day = [[dateFormatter stringFromDate:choice] intValue];
[dateFormatter setDateFormat:@"HH"];
hour = [[dateFormatter stringFromDate:[NSDate date]] intValue];
// NSLog(@"hour: %d",hour);
[dateFormatter setDateFormat:@"mm"];
minute = [[dateFormatter stringFromDate:[NSDate date]] intValue];
[dateFormatter setDateFormat:@"ss"];
second = [[dateFormatter stringFromDate:[NSDate date]] intValue];
}
如果我看到日誌小時......它給了我正確的小時我的本地時間,但是當我把在另一NSDate的,我需要創建時變更,成爲格林威治時間價值,這是我使用的代碼:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm:SS"];
// NSLog(@"hour: %d",hour);
//this log still gives me the right hour
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
self.myDate = [dateFormatter dateFromString:[NSString stringWithFormat:@"%d-%d-%d %d:%d:%d",day,month,year,hour,minute,second]];
NSLog(@"my date: %@",myDate);
這最後的日誌是這樣的:
2013年8月31日05:14:12.905對myApp [25987:904]我的日期:2013年8月31日15:14:00 +0000
我的時間應該是5:14,但相反,它是15 :14格林威治時間... 爲什麼會發生這種情況,我該如何獲得當地時間,而不是格林威治時間? 感謝您的幫助。
可能的重複http://stackoverflow.com/questions/8466744/getting-date-from-nsdate-date-off-by-a-few-hours,http://stackoverflow.com/questions/4547379/ NSDate的 - 是 - 不回 - 我的本地時區,默認時區-的設備。 –
在控制檯中打印一個'NSDate'將始終顯示GMT。如果您設置了一個斷點並在本地變量中查看它,您將在本地時區中看到該日期。 – memmons