Как конвертировать время великобритании в часовой пояс мексики
У меня есть массив на эту дату в британском часовом поясе. Я хочу преобразовать этот часовой пояс Великобритании в время ниже страны. У меня две кнопки радио
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
нет часового пояса, поэтому ваш NSDate
s не в часовом поясе Великобритании. 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"];