iOS开发——时间格式类
目前只实现了三个类方法,
第一个获取当前时间,以字符创的形式返回,例如"201606161532"
第二个以当前时间与给定时间的时间差(秒)
第三个以当前时间与给定时间的时间差(分)
.h文件
//
// TimeHelper.h
// ZiPeiYi
//
// Created by 刘成利 on 16/6/14.
// Copyright © 2016年 YouXianMing. All rights reserved.
// #import <Foundation/Foundation.h> @interface TimeHelper : NSObject + (NSString *)getCurrentTimeString; + (NSString *)secondsFromTimeString:(NSString *)timeString; + (NSString *)minuteFromTimeString:(NSString *)timeString; @end
.m文件
//
// TimeHelper.m
// ZiPeiYi
//
// Created by 刘成利 on 16/6/14.
// Copyright © 2016年 YouXianMing. All rights reserved.
// #import "TimeHelper.h" @implementation TimeHelper + (NSString *)getCurrentTimeString{ NSDate* nowTime = [NSDate date]; //转换时间格式 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];//格式化 [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString* tempString1 = [dateFormatter stringFromDate:nowTime]; NSDate* date = [dateFormatter dateFromString:tempString1]; //转换时间格式 NSDateFormatter*df = [[NSDateFormatter alloc]init]; //格式化 [df setDateFormat:@"yyyyMMddHHmmss"]; [df setLocale:[[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"]]; return [df stringFromDate:date]; } + (NSString *)secondsFromTimeString:(NSString *)timeString{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];//设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setTimeZone:timeZone];
NSDate *datenow = [NSDate date];
//设置一个字符串的时间
NSMutableString *datestring = [NSMutableString stringWithFormat:@"%@",timeString];
//注意 如果20141202052740必须是数字,如果是UNIX时间,不需要下面的插入字符串。
[datestring insertString:@"-" atIndex:];
[datestring insertString:@"-" atIndex:];
[datestring insertString:@" " atIndex:];
[datestring insertString:@":" atIndex:];
[datestring insertString:@":" atIndex:]; NSDateFormatter * dm = [[NSDateFormatter alloc]init];
//指定输出的格式 这里格式必须是和上面定义字符串的格式相同,否则输出空
[dm setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate * newdate = [dm dateFromString:datestring];
long dd = (long)[datenow timeIntervalSince1970] - [newdate timeIntervalSince1970]; return [NSString stringWithFormat:@"%ld", dd]; // if (dd/3600<1 && dd/60>1)
// {
// timeStr = [NSString stringWithFormat:@"%ld", dd/60];
// timeStr=[NSString stringWithFormat:@"%@分钟前", timeString];
// }
// if (dd/3600>1&&dd/86400<1)
// {
// timeStr = [NSString stringWithFormat:@"%ld", dd/3600];
// timeStr=[NSString stringWithFormat:@"%@小时前", timeString];
// }
// if (dd/86400>1)
// {
// timeStr = [NSString stringWithFormat:@"%ld", dd/86400];
// timeStr=[NSString stringWithFormat:@"%@天前", timeString];
// } } + (NSString *)minuteFromTimeString:(NSString *)timeString{ NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];//设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
[formatter setTimeZone:timeZone];
NSDate *datenow = [NSDate date];
//设置一个字符串的时间
NSMutableString *datestring = [NSMutableString stringWithFormat:@"%@",timeString];
//注意 如果20141202052740必须是数字,如果是UNIX时间,不需要下面的插入字符串。
[datestring insertString:@"-" atIndex:];
[datestring insertString:@"-" atIndex:];
[datestring insertString:@" " atIndex:];
[datestring insertString:@":" atIndex:];
[datestring insertString:@":" atIndex:];
NSLog(@"datestring==%@",datestring);
NSDateFormatter * dm = [[NSDateFormatter alloc]init];
//指定输出的格式 这里格式必须是和上面定义字符串的格式相同,否则输出空
[dm setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate * newdate = [dm dateFromString:datestring];
long dd = (long)[datenow timeIntervalSince1970] - [newdate timeIntervalSince1970]; return [NSString stringWithFormat:@"%ld", dd/]; }
个人使用的情况:
// 获取已存的时间字符串
NSString *lastTime = [[NSUserDefaults standardUserDefaults] objectForKey:@"lastTime"];
if (lastTime == nil || lastTime.length == 0) {
return;
}
// 计算与当前的时间差秒
NSString *secondsString = [TimeHelper secondsFromTimeString:lastTime];
int seconds = secondsString.intValue;
if (seconds > 60) {
}
iOS开发——时间格式类的更多相关文章
- iOS 之 时间格式与字符串转换
这个知识点涉及到三个类:NSDate.NSString,另外是一个最重要的类NSDateFormatter.它起到格式转换的作用,至于方法查看头文件就好了.时间格式注意下:yyyyMMddHHmmss
- 关于微信小程序iOS端时间格式兼容问题
经过测试发现,当时间格式为 2018-08-08 08:00 ,需要将时间转为其他格式时,Android端转换成功,iOS端报错或是转为NaN 这是因为iOS端对符号‘ - ’不支持,也就是说iOS端 ...
- IOS --- 日期时间格式 更改
1.怎样怎样将一个字符串如" 20110826134106"装化为随意的日期时间格式.以下列举两种类型: NSString* string =@"201108261 ...
- IOS开发--常用工具类收集整理(Objective-C)(持续更新)
前言:整理和收集了IOS项目开发常用的工具类,最后也给出了源码下载链接. 这些可复用的工具,一定会给你实际项目开发工作锦上添花,会给你带来大大的工作效率. 重复造轮子的事情,除却自我多练习编码之外,就 ...
- iOS 开发学习-类的创建与实现,与java语言的对比
Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { //在{}中定义属性(全局变量/实例变量 ...
- iOS开发值NSUserDefaults类概述
NSUserDefaults类概述 NSUserDefaults类为和默认的系统进行交互提供了一个系统编程接口.默认的系统允许一个应用来定制它的行为以适应用户的喜好.例如,你可以允许用户去决定你的应用 ...
- iOS开发时间处理工具
1.获取当前的时间 /** 获取当前的时间 */ +(NSString*)getCurrentTimes{ NSDateFormatter *formatter = [[NSDateFormatter ...
- ios开发缓存处理类NSCash类的了解与使用
一:NSCash的基本了解 #import "ViewController.h" @interface ViewController ()<NSCacheDelegate&g ...
- iOS开发之资讯类App常用分类控件的封装与实现(CollectionView+Swift3.0+)
今天博客中,我们就来实现一下一些常用资讯类App中常用的分类选择的控件的封装.本篇博客中没有使用到什么新的技术点,如果非得说用到了什么新的技术点的话,那么勉强的说,用到了一些iOS9以后UIColle ...
随机推荐
- 梦断代码3-message center消息的集中分发
上一代产品模块有30多个,从底层硬件基础组件到上层应用控制.qos,各个模块通信据说都是直接向模块索要信息.最坏的死锁情况大概就是这样: 在产品升级后,加入了一个消息中心的模块,负责统一管理各个模块的 ...
- SlideLayout
https://github.com/rey5137/SlideLayout
- Android中Activity启动模式详解
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. An ...
- ios开发——实用技术篇OC篇&获取设备唯一标识
获取设备唯一标识 WWDC 2013已经闭幕,IOS7 Beta随即发布,界面之难看无以言表...,简直就是山寨Android. 更让IOS程序猿悲催的是,设备唯一标识的MAC Address在IOS ...
- 开发者必备,超实用的PHP代码片段(转)
此前,研发频道曾发布<直接拿来用,10个PHP代码片段>,得到了网友们的一致好评.本文,笔者将继续分享九个超级有用的PHP代码片段.当你在开发网站.应用或者博客时,利用这些代码能为你节省大 ...
- 初步认知MySQL metadata lock(MDL)
http://blog.itpub.net/26515977/viewspace-1208250/ 概述 随着5.5.3引入MDL,更多的Query被“Waiting for table metada ...
- C++编程对缓冲区的理解
本文转自:http://www.vckbase.com/index.php/wv/1592 什么是缓冲区 缓冲区又称为缓存,它是内存空间的一部分.也就是说,在内存空间中预留了一定的存储空间,这些存储空 ...
- 使用asp.net动态添加html元素
HtmlGenericControl gen = new HtmlGenericControl("div"); gen.InnerText = "HtmlG ...
- C语言中堆和栈的区别
原文:http://blog.csdn.net/tigerjibo/article/details/7423728 C语言中堆和栈的区别 一.前言: C语言程序经过编译连接后形成编译.连接后形成的二进 ...
- 把旧的项目改变名称重新部署到tomcat下发现项目名称还是原来的项目名称,解决方案
选中项目右键点击properties 在type file text 中输入web 选择web在右边可以看到web-context-root 把里面的项目名称改成你最新的就ok了