2016-07-19 3 views
-1

Я получаю миллисекундное время от бэкэнда. Я должен преобразовать это в часовой пояс UTC, потому что тогда я могу легко преобразовать его в любой часовой пояс. Или есть способ изменить время в зависимости от страны без изменения в часовой пояс UTC.Как преобразовать миллисекунды в UTC в Objective C?

Я использую этот код

NSDate *currentDate = mydate; 
     double secsUtc1970 = [currentDate timeIntervalSince1970]; 
     NSDate *date = [NSDate dateWithTimeIntervalSince1970:secsUtc1970]; 


NSDateFormatter *format = [[NSDateFormatter alloc]init]; 
     NSTimeZone *inputTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; 
     [format setTimeZone:inputTimeZone]; 
      [format setDateStyle:NSDateFormatterFullStyle]; 
      [format setTimeStyle:NSDateFormatterFullStyle]; 
     NSLog(@"%@",[format stringFromDate:date]); 


      NSTimeZone *outputTimeZone = [NSTimeZone localTimeZone]; 
      NSDateFormatter *outputDateFormatter = [[NSDateFormatter alloc] init]; 
      [outputDateFormatter setTimeZone:outputTimeZone]; 
      [outputDateFormatter setDateStyle:NSDateFormatterFullStyle]; 
      [outputDateFormatter setTimeStyle:NSDateFormatterFullStyle]; 
      NSString *outputString = [outputDateFormatter stringFromDate:date]; 
      NSLog(@"%@",outputString); 

мои миллисекунды 1468930910629 благодаря

+0

Ваш qustion хороший, ваш проверенный еще утром, правильный, –

+0

да @ Anbu.Karthik – Himanth

+0

ok вы можете показать свои миллисекунды –

ответ

1

Помните, что NSDate внутренне представлена ​​в виде некоторого значения по отношению к UTC дату в прошлом. Имея эту фиксированную точку отсчета делает NSDate часовой пояс независимыми, что позволяет сравнивать NSDates с NSDates без необходимости беспокоиться о часовых поясах.

Итак, главное, чтобы все остальное работало, это правильно создать NSDates. См. Примеры this или this.

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