时间戳 时间 相互转换
一、时间戳 -> 时间
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);