category(类目)的用法,NSDate,NSTimeInterval类的使用

 分类, 类目, category
 目的: 为没有源代码的类添加方法(只能添加方法, 不能添加实例变量)
 是扩充一个类的功能的方式之一, 为原有类扩充的方法成为原类的一部分, 使用即可
 分类也分为.h(接口部分), 以及.m(实现部分)
 .h文件中填写方法的声明, .m文件填写方法的实现
 分类的定义格式:.h中@interface开头 扩展类的类名 (分类名) @end结束
              .m中@implementation开头 扩展类的类名 (分类名) @end结束
其子类也会继承响应的方法
NSDateFormatter是一个日期格式类, 将一个日期格式进行转换(原理:转换为字符串), 另外也能将日期格式串转换为NSDate对象
HH表示24小时制, hh表示12小时制; MM表示月份, mm表示分钟; dd表示当月天数, DD表示当天处于本年的第几天; ss表示秒数; 若年数给两个y, 则只显示年份的后两位, 若给其他个数的y, 都是显示完整的年份; MM等只给两位, 则若月份是一位时, 前面补0
NSDate *date = [NSDate date];
        //创建日期格式类对象
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
//将日期按照指定格式转化为日期格式串
        NSString *datestr = [formatter stringFromDate:date];
        NSLog(@"%@", date);
        NSLog(@"%@", datestr);
//----------------------将日期格式串转换为NSDate对象------------------------
        NSString *dateStr2 = @"2008年08月08日 20点08分08秒";
        //创建日期格式化对象
        NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
        //设置日期格式 一定要和日期格式串中日期的格式保持一致
        [formatter1 setDateFormat:@"yyyy年MM月dd日 HH点mm分ss秒"];
         NSDate *date2 = [formatter1 dateFromString:dateStr2];
        NSLog(@"%@", date2);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 Objective-C 代码输出一个月份的日历: ```objc // 获取当前日期 NSDate *today = [NSDate date]; NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateComponents *components = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:today]; NSInteger year = [components year]; NSInteger month = [components month]; // 设置日期格式化对象 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"MMMM yyyy"]; // 获取当前月份第一天的日期 NSDateComponents *firstDayComponents = [[NSDateComponents alloc] init]; [firstDayComponents setYear:year]; [firstDayComponents setMonth:month]; [firstDayComponents setDay:1]; NSDate *firstDayOfMonth = [calendar dateFromComponents:firstDayComponents]; // 获取当前月份的天数 NSRange daysInMonth = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:firstDayOfMonth]; // 输出日历 NSString *header = [dateFormatter stringFromDate:firstDayOfMonth]; NSLog(@"%@", header); NSLog(@"Su Mo Tu We Th Fr Sa"); NSDateComponents *currentDateComponents = [[NSDateComponents alloc] init]; [currentDateComponents setDay:1]; [currentDateComponents setMonth:month]; [currentDateComponents setYear:year]; NSInteger weekday = [calendar component:NSCalendarUnitWeekday fromDate:firstDayOfMonth]; for (NSInteger i = 1; i < weekday; i++) { printf(" "); } for (NSInteger i = 1; i <= daysInMonth.length; i++) { printf("%2ld ", (long)i); if (i == daysInMonth.length) { printf("\n"); break; } [currentDateComponents setDay:i + 1]; NSDate *currentDate = [calendar dateFromComponents:currentDateComponents]; NSInteger currentWeekday = [calendar component:NSCalendarUnitWeekday fromDate:currentDate]; if (currentWeekday == 1) { printf("\n"); } } ``` 该代码会输出当前月份的日历,例如: ``` May 2021 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ``` 你可以根据需要修改年月来输出不同月份的日历。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值