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) {

}

上一篇:牛客训练六:海啸(二维树状数组+vector函数的使用)


下一篇:JVM 运行时数据区 (三)