Я использую NSDate для получения текущего времени и даты, но он дает дату и время на основе GMT. Пожалуйста, можете ли вы знать, как получить местное время?Как получить локальную дату и дату?
Заранее благодарен!
Я использую NSDate для получения текущего времени и даты, но он дает дату и время на основе GMT. Пожалуйста, можете ли вы знать, как получить местное время?Как получить локальную дату и дату?
Заранее благодарен!
NSDate не имеет информации о часовых поясах. Он всегда хранит даты как абсолютные моменты времени, в GMT.
Использование NSDateFormatter для получения локального (или любого другого часового пояса) представления.
См уместную руководство по программированию: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html
Как получить текущий язык? Не могли бы вы привести несколько примеров? –
Если вы используете NSDateFormatter, он будет автоматически использовать текущий языковой стандарт по умолчанию. Если вам нужно знать язык, вы можете получить его с помощью [NSLocale currentLocale] –
Извините за недоразумение, я хочу получить локальное текущее время, но мне нужно, чтобы формат NSDate использовался только в NSString, поэтому я не могу использовать NSDateFormatter. И я не могу указать Часовой пояс также потому, что на основе местоположения он должен автоматически конвертироваться. –
Привет, я нашел это с другого сайта
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] autorelease];
Ссылка на веб-сайт является here
Но разве это помогает, когда разница в «-»? –
[dateFormatter setTimeZone:systemTimeZone];
установить часовой пояс даты с помощью формат даты с указанным выше методом. Это будет работать. Преобразуйте дату в строку, установите формат и часовой пояс и конвертируйте обратно.
смотрите здесь: http://stackoverflow.com/questions/4547379/nsdate-is-not-returning-my-local-time-zone-default-time-zone-of-device – cweinberger