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

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

此类可以从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[];
info.mounth = timeInfoArray[];
info.day = timeInfoArray[];
info.enMounth = timeInfoArray[];
info.fullEnMounth = timeInfoArray[];
info.hour = timeInfoArray[];
info.min = timeInfoArray[];
info.sec = timeInfoArray[];
info.amPm = timeInfoArray[];
info.enWeakday = timeInfoArray[];
info.fullWeakday = timeInfoArray[];
info.mSec = timeInfoArray[]; 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; //
@property (nonatomic, strong) NSString *mounth; //
@property (nonatomic, strong) NSString *day; //
@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,然后解析出来,就是这么简单:)

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

05-13 20:40