zoukankan      html  css  js  c++  java
  • 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) {

    }

  • 相关阅读:
    lucene学习-创建索引
    ExtJs学习-搭建开发环境
    Struts2上传文件(1)
    使用USBWriter做U盘启动盘后U盘在盘中不显示的解决办法(轉載)
    家里旧电脑装了centos7實踐思路
    win7/win10下装centos7双系统(转载)
    美区google play礼品卡,如何正确充值到美区google play余额,并能购买游戏道具
    excel 2016 打开UTF-8编码CSV文件乱码的问题UTF-8编码CSV文件乱码的问题
    python3 writerow CSV文件多一个空行
    python3 UnicodeEncodeError: 'gbk' codec can't encode character 'xa0' in position 4400: illegal multibyte sequence
  • 原文地址:https://www.cnblogs.com/LiuChengLi/p/5591180.html
Copyright © 2011-2022 走看看