zoukankan      html  css  js  c++  java
  • 封装用于解析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,然后解析出来,就是这么简单:)

  • 相关阅读:
    AutomationQA.com开始连载 TIB工作室核心成员 刘毅 的《软件测试自动化的探索与管理》专栏文章
    自动化测试项目实战训练【广州 5月、6月】
    大话“自动化测试框架思想与构建”
    ST&QA 2011年12期的杂志 已上传到AutomationQA资源共享
    整体思考自动化测试发展和价值回报
    热烈祝贺AutomationQA成为QA联盟核心会员!
    TestPartner中使用Module和Shared Module设计模块化结构的脚本
    [转] 自动化测试案例设计及读后感
    北京自动化测试实战训练课程下周开始
    后Web2.0的创新模式
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4032014.html
Copyright © 2011-2022 走看看