OC日期的用法NSDate/NSDateComponents/NSCalendar


#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    @autoreleasepool {
        NSString *time1 = @"2014-04-08 20:50:40";
        NSString *time2 = @"2014-04-04 18:45:30";

        NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
        fmt.dateFormat = @"yyyy-MM-dd HH:mm:ss";

        NSDate *date1 = [fmt dateFromString:time1];
        NSDate *date2 = [fmt dateFromString:time2];

        // 1.创建一个日历对象
        NSCalendar *calendar = [NSCalendar currentCalendar];

        // 2.比较时间的差距
        int unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay
        | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
        NSDateComponents *cmps = [calendar components:unit fromDate:date2 toDate:date1 options:0];

        NSLog(@"相差%ld年%ld月%ld天%ld小时%ld分钟%ld秒", cmps.year, cmps.month, cmps.day, cmps.hour, cmps.minute, cmps.second);
    }
    return 0;
}

void componentsOfDate()
{
    // 1.当前时间
    NSDate *now = [NSDate date];

    // 2.创建一个日历对象
    NSCalendar *calendar = [NSCalendar currentCalendar];

    // 3.利用日历对象 或者 时间对象 对应的 年、月、日、时分秒
    int unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
    NSDateComponents *cmps = [calendar components:unit fromDate:now];

    // 4.打印时间的要素
    NSLog(@"%ld", cmps.day);
}

void formatDate2()
{
    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
    fmt.dateFormat = @"yyyy-MM-dd HH:mm";

    NSDate *date = [fmt dateFromString:@"2014-09-10 16:34"];

    NSLog(@"%@", date);
}

void formatDate()
{

    // 微博\QQ\QQ空间

    // 18:56

    // 1分钟前

    // 昨天 17:45

    // 日期格式化
    NSDate *now = [NSDate date];

    // 创建一个格式化工具类
    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];

    // 设置格式
    //        fmt.dateFormat = @"今天 HH:mm";

    // HH : 24小时制
    // hh : 12小时制
    // yyyy : 年
    // MM : 月
    // dd : 号
    // mm : 分钟
    // ss : 秒
    // Z :  时区
    fmt.dateFormat = @"yyyy年MM月dd号 hh:mm:ss Z";

    // 转换格式:将 NSDate 转成某种格式的 字符串
    NSString *nowStr = [fmt stringFromDate:now];

    NSLog(@"%@", nowStr);
}

void useDate()
{
    NSDate *now = [NSDate date];

    NSDate *date = [now dateByAddingTimeInterval:10];

    NSLog(@"now:%@", now);
    NSLog(@"date:%@", date);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值