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

时间: 2024-12-31 16:30:45

封装用于解析NSDate的便利的类的相关文章

excelreader: PHP-ExcelReader:用于解析excel文件的PHP类库

PHP-ExcelReader:用于解析excel文件的PHP类库 PHP-ExcelReader是一个基于PHP的开源项目,其作用在于解析excel文件.其中,Excel目录下的两个文件reader.php和oleread.inc是excel解析必须包含的文件,解析所需要的类与方法分别写在这两个文件之中.其它的,example.php和example2.php两个文件是示例程序,jxlwtest.xls文件是示例程序需要解析的文件,剩下的两个文件是自述文件.PHP-ExcelReader的用法

Spring源码解析——配置文件读取相关的类

一,整体结构图       在Spring中,定义了如下类来处理经过经过验证的Document对象,并且对文档元素及属性进行解析. 二,各个类基本介绍            1,ResourceLoader                      public interface ResourceLoader { /** Pseudo URL prefix for loading from the class path: "classpath:" */ String CLASSPAT

php实现用于验证所有类型的信用卡类

 这篇文章主要介绍了php实现用于验证所有类型的信用卡类,实例分析了信用卡类的实现原理与相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php实现用于验证所有类型的信用卡类.分享给大家供大家参考.具体如下: 这个php类比较完整,可以用于验证各种不同的信用卡,针对信用卡的卡号的通用规则进行了验证,同时对不同类型的信用卡进行了针对性的识别. 代码接受一个信用卡号码和有效日期,如果两者都有效,则返回TRUE,否则返回FALSE. 本插件接受以下参数: $number

封装的静态库开放接口的类 必须是nsobject的类吗?

问题描述 封装的静态库开放接口的类 必须是nsobject的类吗? 如题,封装好的静态库,要开放的借口必须要放在nsobject类中吗? 比如说 我要在静态库中封装几个视图控制器,可以直接把视图的.h文件作为开放的接口吗? 急求~~坐等!! 解决方案 把开放的接口都统一放到一个h文件,统一管理

遗传算法或二维ostu-求 用于图像分割的二维最大类间方差法 源程序

问题描述 求 用于图像分割的二维最大类间方差法 源程序 用于图像分割的二维最大类间方差法 源程序 或者结合遗传算法的ostu图像分割程序 解决方案 这种纯学术的算法,一般程序员是不会去写的.你可能要去找一些学术型的网站.或者论坛看看有没有你想要的东东.

iOS 基础类解析 - NSDate

iOS 基础类解析 - NSDate 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. NSDate Class Reference Inherits from NSObject Conforms

php封装的单文件(图片)上传类完整实例_php技巧

本文实例讲述了php封装的单文件(图片)上传类.分享给大家供大家参考,具体如下: <?php //封装php中的单文件(图片)上传类 /* //参数1:$file 文件数组 5个属性值 name,type,size,tmp,error //参数2:文件保存的路径$path //参数3:文件上传允许的类型 $allow数组 $allow=array('image/jpeg','image/jpg','image/png','image/gif') //参数4: 允许文件上传的最大大小 $size

php实现用于验证所有类型的信用卡类_php技巧

本文实例讲述了php实现用于验证所有类型的信用卡类.分享给大家供大家参考.具体如下: 这个php类比较完整,可以用于验证各种不同的信用卡,针对信用卡的卡号的通用规则进行了验证,同时对不同类型的信用卡进行了针对性的识别. 代码接受一个信用卡号码和有效日期,如果两者都有效,则返回TRUE,否则返回FALSE. 本插件接受以下参数: $number 表示信用卡号码的一个字符串 $expiry 信用卡有效日期,采用07/12或0712这样的格式 <?php // Plug-in 32: Validate

SCSS 0.4.1发布 一个用于解析R6RS计划库

SCSS是一个用于解析R6RS计划库,查询和发光样式信息与建议,兼容W3C层叠样式表.虽然SCSS本身并不提供任何的渲染功能,它可以提供样式信息的应用程序和库做. SCSS包括一个任意文件实现可插入式API,允许它适应在W3C建议中所述选择类型齐全; SDOM支持外的即用. SCSS 0.4.1更新日志:这是一个错误修正发行版,解决了破碎符号引用,并更新为http://www.aliyun.com/zixun/aggregation/29707.html">最新版本兼容SDOM文档界面的几