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

}

原文地址:https://www.cnblogs.com/LiuChengLi/p/5591180.html