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,然后解析出来,就是这么简单:)

  • 相关阅读:
    机器学习
    机器学习
    JavaWeb之tomcat安装、配置与使用(一)
    Tomcat安装、配置和部署笔记
    Java配置----JDK开发环境搭建及环境变量配置
    安装SQL2012
    SQLServer 数据库变成单个用户后无法访问问题的解决方法
    临时记录
    SQL Server 动态生成数据库所有表Insert语句
    SQL2000查看表的大小
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4032014.html
Copyright © 2011-2022 走看看