Как конвертировать время великобритании в часовой пояс мексики

У меня есть массив на эту дату в британском часовом поясе. Я хочу преобразовать этот часовой пояс Великобритании в время ниже страны. У меня две кнопки радио

Mexico (UTC-6)
India - IST (UTC+5.30)

когда я нажимаю Mexico (UTC-6) переключатель моя дата массива конвертируется в часовой пояс Мексики, и когда я нажимаю India - IST (UTC+5.30) Переключатель моего массива даты конвертируется в индийский часовой пояс.

мой массив [0] дата часового пояса 2015-04-17 10:29:22 +0000 Это в часовом поясе Великобритании. Пожалуйста, помогите мне в кодировании, это первый раз, когда я делаю процесс часового пояса.

2 ответа

Решение

Попробуйте это может помочь полный... В этом вам нужно передать имя часового пояса

 NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithName:@"Europe/London"];
NSTimeZone* destinationTimeZone = [NSTimeZone timeZoneWithName:@"America/Mexico_City"];

NSDate *yourDate = [NSDate date]; // Please add here your date that you want change .
//calc time difference
NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:yourDate];

NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:yourDate];
NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;

//set current real date
NSDate* date = [[NSDate alloc] initWithTimeInterval:interval sinceDate:yourDate];

Весь список часовых поясов здесь Все iOS TimeZone Попробуйте это полезно...

NSDate нет часового пояса, поэтому ваш NSDates не в часовом поясе Великобритании. NSDate это абсолютное время Это означает, что если вы позвоните [NSDate date] и кто-то на другом конце света делает это в одно и то же время, вы оба получаете один и тот же результат.

Часовые пояса существуют только при отображении дат, но они не являются частью NSDate,

Если вы хотите отобразить дату в часовом поясе Мексики, вы должны сделать что-то вроде этого:

NSDate *date = // your NSDate here

NSTimeZone *myZone = [NSTimeZone timeZoneWithName:@"America/Mexico_City"];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterLongStyle];
[dateFormatter setTimeStyle:NSDateFormatterLongStyle];
[dateFormatter setTimeZone:myZone];

NSString *dateString = [dateFormatter stringFromDate:date];

Если вы хотите получить дату для другого часового пояса, просто измените первую строку, чтобы использовать другую зону. Например, в Индии вы можете использовать

NSTimeZone *myZone = [NSTimeZone timeZoneWithName:@"Asia/Kolkata"];
Другие вопросы по тегам