2017.1.5更新 添加了更多方法,详情到GitHub下载工具类源码
https://github.com/liuchengli/DateTimeHelper
目前只实现了三个类方法,
第一个获取当前时间,以字符创的形式返回,例如"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:4];
[datestring insertString:@"-" atIndex:7];
[datestring insertString:@" " atIndex:10];
[datestring insertString:@":" atIndex:13];
[datestring insertString:@":" atIndex:16];
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:4];
[datestring insertString:@"-" atIndex:7];
[datestring insertString:@" " atIndex:10];
[datestring insertString:@":" atIndex:13];
[datestring insertString:@":" atIndex:16];
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/60];
}
个人使用的情况:
// 获取已存的时间字符串
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) {
}