• 封装用于解析NSDate的便利的类


    封装用于解析NSDate的便利的类

    此类可以从NSDate中解析出年份,月份,日期,时,分,秒,毫秒,足够用来做好多事情了,现提供源码如下:

    以下是核心的类:

    TimeInfo.h 与 TimeInfo.m

    //
    //  TimeInfo.h
    //  ShowTime
    //
    //  Created by YouXianMing on 14-10-16.
    //  Copyright (c) 2014年 YouXianMing. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    @class HumanTimeInfo;
    
    @interface TimeInfo : NSObject
    
    + (HumanTimeInfo *)humanCanUnderstandFromDate:(NSDate *)date;
    
    @end
    //
    //  TimeInfo.m
    //  ShowTime
    //
    //  Created by YouXianMing on 14-10-16.
    //  Copyright (c) 2014年 YouXianMing. All rights reserved.
    //
    
    #import "TimeInfo.h"
    #import "HumanTimeInfo.h"
    
    static NSDateFormatter   *_dateFormatter;
    
    @implementation TimeInfo
    
    + (void)initialize {
        if (self == [TimeInfo class]) {
            _dateFormatter            = [[NSDateFormatter alloc] init];
            _dateFormatter.locale     = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
            _dateFormatter.timeZone   = [NSTimeZone timeZoneWithName:@"GMT"];
            _dateFormatter.dateFormat = @"yyyy:MM:dd:MMM:MMMM:HH:mm:ss:aa:EEE:EEEE:SSS"; // SSSS
        }
    }
    
    + (HumanTimeInfo *)humanCanUnderstandFromDate:(NSDate *)date {
        if (date != nil) {
            NSArray *timeInfoArray = [[_dateFormatter stringFromDate:date] componentsSeparatedByString:@":"];
            HumanTimeInfo *info    = [HumanTimeInfo new];
            info.year              = timeInfoArray[0];
            info.mounth            = timeInfoArray[1];
            info.day               = timeInfoArray[2];
            info.enMounth          = timeInfoArray[3];
            info.fullEnMounth      = timeInfoArray[4];
            info.hour              = timeInfoArray[5];
            info.min               = timeInfoArray[6];
            info.sec               = timeInfoArray[7];
            info.amPm              = timeInfoArray[8];
            info.enWeakday         = timeInfoArray[9];
            info.fullWeakday       = timeInfoArray[10];
            info.mSec              = timeInfoArray[11];
            
            return info;
        } else {
            return nil;
        }
    }
    
    @end

    人类能够理解的信息类:

    HumanTimeInfo.h 与 HumanTimeInfo.m

    //
    //  HumanTimeInfo.h
    //  ShowTime
    //
    //  Created by YouXianMing on 14-10-16.
    //  Copyright (c) 2014年 YouXianMing. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface HumanTimeInfo : NSObject
    
    @property (nonatomic, strong) NSString *year;         // 2014
    @property (nonatomic, strong) NSString *mounth;       // 10
    @property (nonatomic, strong) NSString *day;          // 16
    @property (nonatomic, strong) NSString *enMounth;     // Oct
    @property (nonatomic, strong) NSString *fullEnMounth; // October
    @property (nonatomic, strong) NSString *hour;
    @property (nonatomic, strong) NSString *min;
    @property (nonatomic, strong) NSString *sec;
    @property (nonatomic, strong) NSString *amPm;         // 上午或者下午
    @property (nonatomic, strong) NSString *enWeakday;
    @property (nonatomic, strong) NSString *fullWeakday;
    @property (nonatomic, strong) NSString *mSec;         // 毫秒
    
    @end
    //
    //  HumanTimeInfo.m
    //  ShowTime
    //
    //  Created by YouXianMing on 14-10-16.
    //  Copyright (c) 2014年 YouXianMing. All rights reserved.
    //
    
    #import "HumanTimeInfo.h"
    
    @implementation HumanTimeInfo
    
    @end

    NSDate+CurrentTime.h 与 NSDate+CurrentTime.m

    //
    //  NSDate+CurrentTime.h
    //  ShowTime
    //
    //  Created by YouXianMing on 14-10-16.
    //  Copyright (c) 2014年 YouXianMing. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    @class HumanTimeInfo;
    
    @interface NSDate (CurrentTime)
    
    + (HumanTimeInfo *)currentTime;
    + (HumanTimeInfo *)dateFrom:(NSDate *)date;
    
    @end
    //
    //  NSDate+CurrentTime.m
    //  ShowTime
    //
    //  Created by YouXianMing on 14-10-16.
    //  Copyright (c) 2014年 YouXianMing. All rights reserved.
    //
    
    #import "NSDate+CurrentTime.h"
    #import "HumanTimeInfo.h"
    #import "TimeInfo.h"
    
    @implementation NSDate (CurrentTime)
    
    + (HumanTimeInfo *)currentTime
    {
        return [TimeInfo humanCanUnderstandFromDate:[NSDate date]];
    }
    
    + (HumanTimeInfo *)dateFrom:(NSDate *)date
    {
        return [TimeInfo humanCanUnderstandFromDate:date];
    }
    
    @end

    使用的话,给出NSDate,然后解析出来,就是这么简单:)

  • 相关阅读:
    Why we should overwrite the hashCode() when we overwrite the equals()
    static dictionary methods of text compression
    xtrabackup热备主库(带gtid),实时在线还原备库
    容器提示没有这个:libaio.so.1
    ORACLE账户提示EXPIRED(GRACE)问题
    mysql批量插入测试数据
    记录一下一个脚本化修改sudo提权
    mysql从别的库dump数据下来,然后导入不同名字的其它库
    记一个mysql最简单的清理其二进制的过程
    查看当前数据库正在执行的事件
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4032014.html
Copyright © 2020-2023  润新知