专栏首页ShaoYLiOS----时间日期处理

iOS----时间日期处理

时间日期处理

1.NSDateFormatter

  • 日期格式化

①可以把NSString 类型转为 NSDate类型

举例 把 "2015-08-23 19:46:14" 转为NSDate类型

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// 设置日期格式(formatter对象就会按照这个格式去解析字符串,或者生成字符串)
// y年 M月 d日 H小时(24小时制) h小时(12小时制) m分 s秒
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *createDate = [formatter dateFromString:@"2015-08-23 19:46:14"];

②把 NSDate 类型转为 NSString 类型

举例把当前时间 转为NSString型

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// 设置日期格式(formatter对象就会按照这个格式去解析字符串,或者生成字符串)
// y年 M月 d日 H小时(24小时制) h小时(12小时制) m分 s秒
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

// 当前时间
NSDate *date = [NSDate date];

NSString *string = [formatter stringFromDate:date];

2.NSDate

    // 获得当前时间
    NSDate *nowDate = [NSDate date];

    //从beforeDate -> nowDate的时间间隔,秒
    NSTimeInterval interval = [nowDate timeIntervalSinceDate:beforeDate];

    // 时间戳
    // "time": "6456546455435",到1970年的时间
    [NSDate dateWithTimeIntervalSince1970:6456546455435 / 1000.0];

3.NSCalendar

日期组件

 // 日期组件 (年、月、日、小时、分、秒)
    /** NSCalendarUnit 枚举量
     *  NSCalendarUnitEra
        NSCalendarUnitYear
        NSCalendarUnitMonth
        NSCalendarUnitDay
        NSCalendarUnitHour
        NSCalendarUnitMinute
        NSCalendarUnitSecond
        NSCalendarUnitWeekday
        NSCalendarUnitWeekdayOrdinal
        NSCalendarUnitQuarter
        NSCalendarUnitWeekOfMonth
     */

①获得单个元素

- (NSInteger)component:(NSCalendarUnit)unit fromDate:(NSDate *)date;

// 年
NSInteger year = [calendar component:NSCalendarUnitYear fromDate:createDate];
// 月
NSInteger month = [calendar component:NSCalendarUnitMonth fromDate:createDate];
// 日
NSInteger day = [calendar component:NSCalendarUnitDay fromDate:createDate];
NSLog(@"%zd %zd %zd", year, month, day);

②获得多个元素

   // 创建日期类--获取当前时分秒
    NSCalendar *calendar = [NSCalendar currentCalendar];

    NSDateComponents *cmp = [calendar components:NSCalendarUnitSecond | NSCalendarUnitMinute | NSCalendarUnitHour fromDate:[NSDate date]];
    //获得当前秒
    NSInteger sec = cmp.second;
    //获得当前分钟
    NSInteger min = cmp.minute;
    //获得当前小时
    NSInteger hour = cmp.hour;

③获得2个日期(NSDate)之间的时间间隔

NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarUnit unit = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *cmps = [calendar components:unit fromDate:beforeDate toDate:nowDate options:0];

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NSTimer类的使用

    用户1941540
  • iOS 时间和时间戳之间转化

    用户1941540
  • iOS---内存分析

    用户1941540
  • WiMAX战争回忆录

    WiMAX,就是Worldwide Interoperability for Microwave Access,全球微波互联接入。名字有点长,它还有另外一个名字...

    鲜枣课堂
  • 数据中心饥渴了,咋办?

    ? 濒临秃头运维组(13) ? 萌新小运维 小Q同学,我们数据中心发生了一起暖通系统故障,现场的现象是冷却水回水流量持续变小,冷机无法稳定运行,同时管道内呈现...

    腾讯数据中心
  • Nginx(六)HTTP请求

    Request 和 Response 对象起到了服务器与客户机之间的信息传递作用。Request 对象用于接收客户端浏览器提交的数据,而 Response 对象...

    leeqico
  • 中文文本纠错算法实现

    文本纠错又称为拼写错误或者拼写检查,由于纯文本往往来源于手打或者OCR识别,很可能存在一些错误,因此此技术也是一大关键的文本预处理过程,一般存在两大纠错类型。

    机器学习AI算法工程
  • python 匿名函数lambda

    在python开发中常规的函数在调用之前都需要先声明,而python还有一种匿名函数,有速写函数的功能并且匿名函数不需要声明也没有函数名字,完全不需要担心函数名...

    猿说编程[Python和C]
  • R EnhancedVolcano 绘制火山图

    火山图是用于差异表达分析结果可视化的一种有效方法。今天,我们来介绍一个用于增强火山图绘制的强大 R 包:EnhancedVolcano ,该包拥有强大的绘图功能...

    王诗翔呀
  • 小程序开发问题笔记

    最近从0开始,开发了【企鹅速算检查】小程序,在开发过程中遇到一堆的问(巨)题(坑),这里记录下来分享给大家。

    IMWeb前端团队

扫码关注云+社区

领取腾讯云代金券