git rebase -i HEAD^^
, где число ^ равно X
(в этом случае сквош две последние коммиты)
NSDate
не имеют часовых поясов. Они представляют собой абсолютный момент времени. Однако, когда вы запрашиваете его для своего description
(путем печати его с помощью NSLog()
, например,), он должен выбрать часовой пояс. Самым разумным выбором по умолчанию является GMT. Если вы не находитесь в GMT, дата будет казаться неправильной, на величину вашего собственного смещения.
Вы должны всегда использовать NSDateFormatter
для создания строки для отображения. Часовой пояс форматирования должен быть установлен на ваш, который по умолчанию.
Вы можете скорректировать свою дату следующим образом:
NSDate * dateGMT = [NSDate date];
NSTimeInterval secondsFromGMT = [[NSTimeZone localTimeZone] secondsFromGMT];
NSDate * correctDate = [dateGMT dateByAddingTimeInterval:secondsFromGMT];
-(NSDate *)getDateInCurrentSystemTimeZone
{
NSDate* sourceDate = [NSDate date];
NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
NSTimeZone* destinationTimeZone = [NSTimeZone systemTimeZone];
NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:sourceDate];
NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate];
NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
NSDate* destinationDate = [[NSDate alloc] initWithTimeInterval:interval sinceDate:sourceDate];
return destinationDate;
}