如何在Objective C中将毫秒转换为UTC时间?

时间:2016-07-19 12:11:07

标签: ios objective-c time timezone nsdate

我从后端人那里得到毫秒的时间。我必须将其转换为UTC时区,因为我可以轻松地将其转换为任何时区。 或者有任何方法可以根据国家/地区更改时间而不更改为UTC时区。

我正在使用此代码

  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 感谢

1 个答案:

答案 0 :(得分:1)

请记住,NSDate在内部表示为相对于过去 UTC 日期的某个值。拥有这个固定的参考点使NSDate时区独立,允许您将NSDates与NSDates进行比较,而不必担心时区。

因此,其他一切工作的关键是正确创建NSDates。有关示例,请参阅thisthis