封装用于解析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[];
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的便利的类的更多相关文章
- Android JSON、GSON、FastJson的封装与解析
声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种 ...
- [知了堂学习笔记]_JSON数据操作第2讲(JSON的封装与解析)
上一讲为大家讲了什么是JSON,那么这一讲为大家带来了在WEB项目中JSON的用法,也就是JSON的封装与解析. 此图是数据库中的部分内容 一.JSON封装 所谓的JSON封装,指的是在Servlet ...
- DOM4J操作XML(包括封装和解析)
DOM4J操作XML(包括封装和解析) 先来看看dom4j中相应XML的DOM树建立的继承关系 针对于XML标准定义.相应于图2-1列出的内容,dom4j提供了下面实现: 以下给出一个详细事例: pa ...
- 090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 04 使用包进行类管理(2)——导入包
090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- jsoncpp封装和解析字符串、数字、布尔值和数组
使用jsoncpp进行字符串.数字.布尔值和数组的封装与解析. 1)下载jsoncpp的代码库 百度网盘地址 :http://pan.baidu.com/s/1ntqQhIT 2)解压缩文件 json ...
- MinerUrl.java 解析页面后存储URL类
MinerUrl.java 解析页面后存储URL类 package com.iteye.injavawetrust.miner; /** * 解析页面后存储URL类 * @author InJavaW ...
- Python中第三方的用于解析HTML的库:BeautifulSoup
背景 在Python去写爬虫,网页解析等过程中,比如: 如何用Python,C#等语言去实现抓取静态网页+抓取动态网页+模拟登陆网站 常常需要涉及到HTML等网页的解析. 当然,对于简单的HTML中内 ...
- python 以单例模式封装logging相关api实现日志打印类
python 以单例模式封装logging相关api实现日志打印类 by:授客QQ:1033553122 测试环境: Python版本:Python 2.7 实现功能: 支持自由配置,如下lo ...
- 视音频数据处理入门:FLV封装格式解析
===================================================== 视音频数据处理入门系列文章: 视音频数据处理入门:RGB.YUV像素数据处理 视音频数据处理 ...
随机推荐
- 关系型数据库MySQL主从同步-读写分离
1.环境准备 我的数据库版本是MySQL 5.6 MySQL主机至少两个实例,可以是多实例,可以是多台主机 关闭selinux,关闭防火墙等基础优化 2.安装 yum -y install make ...
- dephi(pascal)中修改Label字体的样式(加粗,斜体,下划线)
不废话,直接代码: Label1.Font.style:=[fsBold,fsItalic,fsUnderline]; //加粗.斜体,下划线
- JavaI/O系统2
数据流: DataInputStream,DataOutputStream.可以用于与计算机无关的格式读写java的基本数据类型以及String对象 对象流: ObjectInputStream,Ob ...
- C语言----<另类>神奇的"Hello World!"
先上代码 #include <iostream> using namespace std; void a() { printf("Hello World!"); } v ...
- Linux系统资源查看 之 资源信息
1. 系统 版本信息 内核版本 使用 uname 命令: -a : 查看所有系统信息 -r : 查看内核版本信息 -s : 查看内核名称 代码如下: [niesh@niesh ~]$ uname -a ...
- Content Negotiation using Spring MVC
There are two ways to generate output using Spring MVC: You can use the RESTful @ResponseBody approa ...
- CSS3完善和模式
CSS3改善了传统盒模型架构,增强盒子构成要素的功能,扩展了盒模型显示的方式,具体描述如下 改善构造:除了传统的内容区域,边框区,补白区和边界区外,为盒子新增了轮廓区. 增强功能:内容增强CSS自动添 ...
- ORDER BY 高级用法之CASE WHEN
今天在公司查看一段sql SP代码,发现了一段比较奇怪的代码. 大概长这样子: Select * from tableA ORDER BY ColA , CASE END 小弟才疏学浅,咋一看到代码以 ...
- 【清北学堂 】Day 4 总结
忙(tui)了这么多天,终于有时间认(sui)真(bian)做做总结了 随便开始:(反正也没听 一:读入输出优化 1 输入优化 <1>快读 废话不多说上代码 inline int r ...
- Hadoop shell 一查就会
Hadoop shell 命令有三种格式 hdfs + dfs (必须是dfs) Hadoop + dfs Hadoop + df 命令 说明 hadoop 版本查看 hadoop version h ...