NSDate

时间操作

#pragma mark - 时间操作
- (void)test
{
    //从当前时间开始,若干秒之后, 参数为秒
    NSDate *date = [NSDate dateWithTimeIntervalSinceNow:3600.0*10];

    //方式一: 以某个时间为标准,加上若干秒后的时间
    NSDate *date1 = [date dateByAddingTimeInterval:60];

    //方式二: 以某个时间为标准,加上若干秒后的时间
    NSDate *date2 = [NSDate dateWithTimeInterval:60 sinceDate:date];

    // 从1970年开始,经过了若干秒的时间计算时间间隔
    NSDate *date3 = [NSDate dateWithTimeIntervalSince1970:1000];

}

计算时间间隔

#pragma mark - 计算时间间隔
- (void)test1
{
    NSDate *date1 = [NSDate date];

    NSDate *date2 = [NSDate dateWithTimeInterval:60*60*5 sinceDate:[NSDate date]];

    // 从1970年到某一年的秒数
    NSTimeInterval interval = [date1 timeIntervalSince1970];

    // 计算两个时间的间隔(秒)
    NSTimeInterval interval1 = [date2 timeIntervalSinceDate:date1];

    // 获取某一时间与当前时间的间隔
    NSTimeInterval interval2 = [date2 timeIntervalSinceNow];

}

时间比较

#pragma mark - 时间比较
- (void)test2
{
    NSDate *date1 = [NSDate date];

    NSDate *date2 = [NSDate dateWithTimeInterval:60*60*5 sinceDate:[NSDate date]];
    // 获取两个时间较晚的
    NSDate *date = [date1 laterDate:date2];
    // 获取两个时间较早的
    NSData *date3 = [date1 earlierDate:date2];

}

字符串与时间之间的相互转换

#pragma mark - 字符串与时间之间的相互转换
- (void)test3
{
    // 将时间转换成字符串
    NSDate *date = [NSDate date];
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
    NSString *dateStr = [formatter stringFromDate:date];

    // 将字符串转换时间
    NSDateFormatter *formatter1 = [[NSDateFormatter alloc]init];
    [formatter1 setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];
    [formatter1 setTimeZone:[NSTimeZone localTimeZone]];
    NSString *str = @"2016年9月9日 11:11:11";
    NSDate *date1 = [formatter1 dateFromString:str];

}

时区


#pragma mark - 时区
- (void)test4
{
    NSString *str = @"2016年9月9日 09:09:09";
    // 设置格式
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];
    // 获取系统时区
    NSTimeZone *zone = [NSTimeZone systemTimeZone];
    // 设置时区
    [formatter setTimeZone:zone];
    // 获取系统时间区的格林时间差
    NSInteger timeOff = [zone secondsFromGMT];
    // 转换后的时间
    NSDate *date1 = [formatter dateFromString:str];
    // 转后的时间加上时间差
    NSDate *date2 = [date1 dateByAddingTimeInterval:timeOff];

}

消除时间差

#pragma mark - 消除时间差
- (void)test5
{
    NSString *str = @"2016年9月9日 09:09:09";
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"yyyy年MM月dd日 hh:mm:ss"];
    NSDate *date = [formatter dateFromString:str];
    // 方式一:
    [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
    NSDate *date1 = [formatter dateFromString:str];
    // 方式二:
    [formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
    NSDate *date2 = [formatter dateFromString:str];
    // 方式三:
    NSInteger timeOff = [[NSTimeZone localTimeZone]secondsFromGMT];
    NSDate *date3 = [date dateByAddingTimeInterval:timeOff];

}

你可能感兴趣的:(NSDate)