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

    }

  • 相关阅读:
    Delphi中Indy10的IdTcpClient和IdTcpServer数据通信
    Delphi中TStringList的使用
    VC2008中处理CStatic控件的单击STN_CLICKED消息
    VS2008中编译运行MFC应用程序时,出现无法启动程序,因为计算机中丢失mfc90ud.dll的解决方案
    adb 常用命令大全
    Windows XP 下如何使用Qt Creator中的Git版本控制功能
    git安装及命令使用和github网站
    Win7下VS2008安装cocos2d-2.0-x-2.0.4模板时, 运行InstallWizardForVS2008.js文件执行失败的解决办法
    VC2008中将CString转换成const char*的一种有效方法
    VS2008中MFC对话框界面编程Caption中文乱码的解决办法
  • 原文地址:https://www.cnblogs.com/LiuChengLi/p/5591180.html
Copyright © 2020-2023  润新知