时间戳 时间 相互转换

一、时间戳 -> 时间

 NSDate *date = [NSDate dateWithTimeIntervalSince1970:myOrder.orderTimeStart];

        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

        [formatter setDateFormat:@"MM月dd日 hh:mm"]; //hh:12小时制, HH:24小时制 EEE:周几或者Sun形式 EEEE:星期几或Sunday形式 (模拟器显示英文,真机显示中文, 可能是根据系统语言而定);

        NSString *string = [formatter stringFromDate:date];

二、当前时间 ->时间戳

NSDate *date = [NSDate date];   //返回0时区,当前时间

NSLog(@"%.0f", [date timeIntervalSince1970] * 1000);

或者

 NSDate *date = [NSDate dateWithTimeIntervalSinceNow:0]; //0时区当前时间

    NSTimeInterval tim = [date timeIntervalSince1970];

    NSString *time = [NSString stringWithFormat:@"%.0f", tim * 1000];

三、日期 ->时间戳

NSDateComponents *comp = [[NSDateComponents alloc] init];

    [comp setYear:2016];

    [comp setMonth:7];

    [comp setDay:13];

    NSDate *da = [[NSCalendar currentCalendar] dateFromComponents:comp];

    NSTimeInterval time = [da timeIntervalSince1970] * 1000;

 

四、设置某个时间点, 及获取该时间点之后一段时间的时间点        

NSCalendar *greCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

// 定义一个NSDateComponents对象,设置一个时间点

NSDateComponents *dateComponentsForDate = [[NSDateComponents alloc] init];

[dateComponentsForDate setDay:6];

[dateComponentsForDate setMonth:5];

[dateComponentsForDate setYear:2004];

// 根据设置的dateComponentsForDate获取历法中与之对应的时间点

// 这里的时分秒会使用NSDateComponents中规定的默认数值,一般为0或1。

NSDate *dateFromDateComponentsForDate = [greCalendar dateFromComponents:dc];

// 定义一个NSDateComponents对象,设置一个时间段

NSDateComponents *dateComponentsAsTimeQantum = [[NSDateComponents alloc] init];

[dateComponentsForDate setDay:6];

// 在当前历法下,获取6天后的时间点

NSDate *dateFromDateComponentsAsTimeQantum = [greCalendar dateByAddingComponents:dateComponentsAsTimeQantum toDate:[NSDate date] options:0];

 

五、获取时间差

// 先定义一个遵循某个历法的日历对象

NSCalendar *greCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

// 根据两个时间点,定义NSDateComponents对象,从而获取这两个时间点的时差

NSDateComponents *dateComponents = [greCalendar components:NSYearCalendarUnit fromDate:[NSDate dateWithTimeIntervalSince1970:0] toDate:[NSDate date] options:0];

NSLog(@"number of years:%i", dateComponents.year);

 

原文地址:https://www.cnblogs.com/lion-witcher/p/5667878.html