2012-06-28 1 views
-1

Мне нужно установить время в моем приложении. У меня есть отметка времени с сервера (это GMT), и мне нужно преобразовать эту метку времени в дату, исходя из текущего часового пояса пользователей. Как это возможно?iPhone установил время от метки времени на основе текущего часового пояса пользователей

NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:@"1340907963"]; 

NSDateFormatter *dFormat = [[[NSDateFormatter alloc] init] autorelease]; 
[dFormat setDateStyle:NSDateFormatterMediumStyle]; 

[dFormat setDateFormat:@"d.MM.yyyy"]; 

NSString *theDate = [dFormat stringFromDate:date]; 

Вот как я преобразовал отметку времени на сегодняшний день. И я получил что-то вроде 20 июня 2012 года 23:55. Но мое фактическое время 18:55

+0

, пожалуйста, отправьте отметку времени, которую вы получили –

ответ

1

Значение вы получили Юниксовое время (интервал с 1970 года), чтобы преобразовать его использовать

NSString * timeStamp = @"1340907963"; 
NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:timeStamp]; 

Затем, чтобы преобразовать его к строке

NSDateFormatter *dFormat = [[[NSDateFormatter alloc] init] autorelease]; 
[dFormat setTimeZone:[NSTimeZone defaultTimeZone]]; 
[dFormat setDateFormat:@"dd.MM.yyyy HH:mm:ss zzz"]; 
NSString *theDate = [dFormat stringFromDate:date]; 
NSLog(theDate); // 28.06.2012 21:26:03 GMT+03:00 
+0

Я уже пробовал, что – Guru

+0

не работает? –

+0

Нет, я уже это сделал. Теперь я изменил вопрос. – Guru

0

Попробуйте этот код:

NSDate *date = [[NSDate alloc] initWithTimeIntervalSince1970:@"1340907963"]; 

NSDateFormatter *dFormat = [[[NSDateFormatter alloc] init] autorelease]; 
[dFormat setTimeZone:[NSTimeZone systemTimeZone]]; 
[dFormat setDateStyle:NSDateFormatterMediumStyle]; 
[dFormat setDateFormat:@"d.MM.yyyy"]; 

NSString *theDate = [dFormat stringFromDate:date]; 
+0

, не могли бы вы объяснить, что это делает? – Guru

+0

Я сделал ошибку, проверьте отредактированный ответ. –

Смежные вопросы