封装用于解析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