Objective-C基础之NSDate的常用方法

在介绍NSDate的常用方法之前,需要了解时间戳 的概念,所谓时间戳,其实是指 某一日期到1970年的秒数大小,称为该日期的时间戳。

理解了时间戳的概念,下面就介绍一些NSDate的常用方法:

1. 创建了一个当前的日期对象

    //1.创建了一个当前的日期对象
    //1.1 类方法
    NSDate *date1 = [NSDate date];
    //1.2 init
    NSDate *date2 = [[NSDate alloc] init];
    NSLog(@"date1:%@ , date2:%@",date1, date2);
    
    //1.3 dateWithTimeIntervalSinceNow:在当前日期的基础上累加一个数值,单位是秒
    //1.3.1 明天
    NSDate *nextDate = [NSDate dateWithTimeIntervalSinceNow:24*60*60];
    NSLog(@"nextDate:%@",nextDate);
    
    //1.3.2 昨天
    NSDate *beforeDate = [NSDate dateWithTimeIntervalSinceNow:-24*60*60];
    NSLog(@"beforeDate:%@",beforeDate);

    //1.4 dateWithTimeIntervalSince1970:在1970年上加一个数值,该数值是一个时间戳数值
    NSDate *date1970 = [NSDate dateWithTimeIntervalSince1970:0];
    NSLog(@"date1970:%@",date1970);</span>
2. 获取 时间戳数值

    //2.timeIntervalSince1970:获取日期距离1970时的时间戳
    NSTimeInterval time1970 = [date1 timeIntervalSince1970];
    NSLog(@"time1970:%f",time1970);
    
    //timeIntervalSinceNow:取得日期对象到当前日期时间的数值差
    NSTimeInterval timeNow = [nextDate timeIntervalSinceNow];
    NSLog(@"timeNow:%f",timeNow);
3.  日期的比较
    //3.日期的比较
    //3.1 通过日期对象的compare 方法进行比较
    NSComparisonResult result = [nextDate compare:date1];
    if (result == NSOrderedDescending) {
        NSLog(@"nextDate > date1");
    }
    //3.2 通过比较时间戳
    if ([nextDate timeIntervalSince1970] > [date1 timeIntervalSince1970]) {
        NSLog(@"nextDate > date1");
    }
4.  日期对象格式化为字符串
    //4.日期对象格式化为字符串: 2014-07-29 15:20:59 --> 2014年07月29日
    // 日期对象 -->  字符串
    NSDate *nowDate = [NSDate date];
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    //设置日期的格式 默认会自动转换为当前系统所在时区 东八区
    [dateFormatter setDateFormat:@"yyyy年MM月dd日 HH:mm:ss"];
    //设置时区
    NSTimeZone *timezone = [NSTimeZone timeZoneWithName:@"America/New_York"];
    [dateFormatter setTimeZone:timezone];
    
    //stringFromDate: 将日期对象格式化为字符串
    NSString *datestring = [dateFormatter stringFromDate:nowDate];
    NSLog(@"格式化之后:%@",datestring);
5. 将字符串格式化成日期对象
    //5.将字符串格式化成日期对象
    //字符串 ——> 日期对象
    NSString *string = @"2013年07月29日 16:56:05";
    NSDateFormatter *dateFormatter2 = [[NSDateFormatter alloc] init];
    [dateFormatter2 setDateFormat:@"yyyy年MM月dd日 HH:mm:ss"];
    //dateFromString: 将字符串格式化成日期对象
    NSDate *formatDate = [dateFormatter2 dateFromString:string];
    NSLog(@"%@",formatDate);
6.  获取到所有时区的名称
    //6.获取到所有时区的名称
    NSArray *zoneNames = [NSTimeZone knownTimeZoneNames];
    for (NSString *name in zoneNames) {
        NSLog(@"%@",name);
    }
NSDate的方法还有其他,需要详细了解可以直接参考API;








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值