时间类,时间的格式转换类

main.h

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

#pragma mark NSDate:获取时间的类
    /**
     *  NSDate是iOS中表示日期、时间的数据类型,包含年月日时分秒,提供了日期的创建。比较、时间间隔计算的功能
     *
     **/
//    //  获取当前时间:获取到的date对象是零时区的时间
     NSDate *nowDate = [NSDate date];
    NSLog(@"%@",nowDate);
    // 获取当前时区的时间
    NSString *localDate = [nowDate descriptionWithLocale:[NSLocale currentLocale]];
    NSLog(@"%@",localDate);
    
    // 获取距离当前时间若干秒之后的时间:NSTimeInterval是一个以秒为单位的时间间隔,是一个double类型的数据
    NSDate *eightAreaDate = [NSDate dateWithTimeIntervalSinceNow:8*60*60];
    NSLog(@"=====%@",eightAreaDate);
    //  获取明天这个时间的时间
    NSDate *tomorrowDate = [NSDate dateWithTimeIntervalSinceNow:32*60*60];
    NSLog(@"tomorrowDate = %@",tomorrowDate);
    
    //  获取时间戳
    //  什么是时间戳?从1970年1月1日开始到当前时间经过了多少秒
    NSTimeInterval timeInterval = [nowDate timeIntervalSince1970];
    NSLog(@"%f",timeInterval);
    //  将时间戳转换为当前日期
    
    NSDate *InterValDate = [NSDate dateWithTimeIntervalSince1970:timeInterval];
    NSLog(@"%@",InterValDate);
    //  获取两个时间之间的间隔
    NSTimeInterval betweenTwoTimes = [tomorrowDate timeIntervalSinceDate:eightAreaDate];
    NSLog(@"%f",betweenTwoTimes);
    
//    NSDate *nowTime = [NSDate dateWithTimeIntervalSinceNow:8 * 60 * 60];
//    NSDate *Time1   = [NSDate dateWithTimeIntervalSinceNow:10 * 60 * 60];
////    NSDate *Time2   = [NSDate dateWithTimeIntervalSinceNow:9*60*60];
//    
////    获取时间差值 :用第一个对象减去第二个对象,得到他们的差值
//    NSTimeInterval time = [Time1 timeIntervalSinceDate:nowTime];
//    NSLog(@"===%f",time);
//    //  判断差值
//        if (time < 60) {
//            NSLog(@"刚刚");
//        }else if(time > 60 && time < 3600){
//            NSLog(@"%d分钟前",(int)time/60);
//        }else if(time > 3600 ){
//            NSLog(@"%d时前",(int)time/60/60);
//        }
    
    
#pragma  mark  NSDateFormatter  时间的格式转换类
    /**
     *  NSDateFormatter 是iOS中的日期格式类,主要实现;将代表日期的NSDate对象转换为字符串对象,或将时间字符串转换为日期对象
     *  NSDateFormatter 可以根据我们提供的日期格式,将NSDate转换为指定格式的字符串
     *  我们有两种方法指定日期格式:1.使用系统预置的日期格式。2.自定义日期格式
     *  在将时间对象转换为字符串对象时,会先自动将时间对象转变为当前时区的时间,再转换为字符串
     *  在将字符串格式的时间转换为时间对象时,现将本失去时间转换为零时区时间,然后再转换为事件对象
     **/
    
    //  使用系统预置的日期格式
    
    //    1.创建一个NSDateFormatter对象
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    //    2.设置日期格式
    [formatter setDateStyle:NSDateFormatterFullStyle];
    //    3.设置时间格式
    [formatter setTimeStyle:NSDateFormatterFullStyle];
    //    4.创建date对象,进行转换
    NSString *str = [formatter stringFromDate:nowDate];
    NSLog(@"%@",str);
    
//     使用自定义方式定义时间格式
//    1.创建NSDateFormatter对象
    NSDateFormatter *selfFormatter = [[NSDateFormatter alloc] init];
    [selfFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss:SS"];
    NSString *str1 = [selfFormatter stringFromDate:nowDate];
    NSLog(@"%@",str1);
    
    //  将一个字符串格式的时间转换为时间对象
    //   创建出字符串格式的时间
    NSString *dateString1 = @"2015年11月03号 14时52分00秒";
    // 1. 创建出NSDateFormatter对象
    NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
    // 2. 设置对应的时间格式,该格式要严格和字符串时间匹配,否则不能正常转换
    [formatter1 setDateFormat:@"yyyy年MM月dd号   HH时mm分ss秒"];
    // 3. 调用formatter对象,将字符串格式的时间转换为时间对象
    NSDate *dataFormString = [formatter1 dateFromString:dateString1];
    NSLog(@"%@",dataFormString);
    
    
    return 0;
}

推荐阅读更多精彩内容