CNLiveTimeTools.m 11.5 KB
//
//  CNLiveTimeTools.m
//  CNLiveNetAdd
//
//  Created by 殷巧娟 on 2019/1/16.
//  Copyright © 2019年 cnlive. All rights reserved.
//

#import "CNLiveTimeTools.h"

@implementation CNLiveTimeTools

+ (NSString *)getTimestamp:(NSDate *)date{
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; // ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
    //设置时区,这个对于时间的处理有时很重要
    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
    [formatter setTimeZone:timeZone];
    //时间转时间戳的方法:
    NSInteger timeSp = [[NSNumber numberWithDouble:[date timeIntervalSince1970]] integerValue];
    return [NSString stringWithFormat:@"%ld",(long)timeSp];
}

#pragma mark --当前的10位时间戳
+ (NSInteger)getNowTimestamp{
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    [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];//现在时间
    //    NSLog(@"设备当前的时间:%@",[formatter stringFromDate:datenow]);
    //时间转时间戳的方法:
    NSInteger timeSp = [[NSNumber numberWithDouble:[datenow timeIntervalSince1970]] integerValue];
    //    NSLog(@"设备当前的10位时间戳:%ld",(long)timeSp); //时间戳的值
    return timeSp;
}

#pragma mark --获得当前时间 格式yyyy/MM/dd

+ (NSString *)getyyMMdd
{
    //实例化一个NSDateFormatter对象
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    //设定时间格式,这里可以设置成自己需要的格式
    [dateFormatter setDateFormat:@"yyyy/MM/dd"];
    //用[NSDate date]可以获取系统当前时间
    NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];
    return currentDateStr;
}

#pragma mark 获得一个 时间戳+八位随机数
+ (NSString *)getRandTimeStr
{
    NSString *str1 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str2 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str3 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str4 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str5 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str6 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str7 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str8 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    
    NSString *timeStamp = [NSString stringWithFormat:@"%ld",[self getNowTimestamp]];
    
    NSString *randTimeStr = [NSString stringWithFormat:@"%@%@%@%@%@%@%@%@%@",timeStamp,str1,str2,str3,str4,str5,str6,str7,str8];
    return randTimeStr;
}
#pragma mark - 根据ts转换为时间text
+ (NSString *)MomentCellTimeWithTs:(NSInteger)ts
{
    NSDate *date = [NSDate date];
    NSTimeZone *zone = [NSTimeZone systemTimeZone];
    NSInteger interval = [zone secondsFromGMTForDate: date];
    NSDate *localeDate = [date dateByAddingTimeInterval: interval];
    NSDate *beforeDate = [NSDate dateWithTimeIntervalSince1970:ts/1000+28800];
    NSTimeInterval timeInterval = [localeDate timeIntervalSinceDate:beforeDate];
    float days = timeInterval / (3600.0*24);
    float hours=timeInterval /3600.0;
    float minutes = timeInterval / 60;
    NSString *time=nil;
    if (days >7)
    {
        time = [NSString stringWithFormat:@"一周前"];
    }
    else if (days>=1)
    {
        time = [NSString stringWithFormat:@"%d天前",(int)days];
    }
    else if (hours>=1)
    {
        time = [NSString stringWithFormat:@"%d小时前",(int)hours];
    }
    else
    {
        time = [NSString stringWithFormat:@"%d分钟前",(int)minutes];
    }
    return time;
}
#pragma mark -获取当前时间 格式2018-03-26 20:34:50
+ (NSString *)getNowTimeYYMMdd{
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    [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];//现在时间
    NSString *currTime = [formatter stringFromDate:datenow];
    //    NSLog(@"设备当前的时间:%@",[formatter stringFromDate:datenow]);
    //时间转时间戳的方法:
    return currTime;
}
#pragma mark -获取当前时间 格式2018-03-26 20:34
+ (NSString *)getNowTimeYYMMddHHmm{
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    [formatter setDateFormat:@"YYYY-MM-dd HH:mm"]; // ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
    //设置时区,这个对于时间的处理有时很重要
    NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Beijing"];
    [formatter setTimeZone:timeZone];
    NSDate *datenow = [NSDate date];//现在时间
    NSString *currTime = [formatter stringFromDate:datenow];
    //    NSLog(@"设备当前的时间:%@",[formatter stringFromDate:datenow]);
    //时间转时间戳的方法:
    return currTime;
}
#pragma mark -获取当前时间 格式2018_03_26
+ (NSString *)getyyMMddLine
{
    //实例化一个NSDateFormatter对象
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    //设定时间格式,这里可以设置成自己需要的格式
    [dateFormatter setDateFormat:@"yyyyMMdd"];
    //用[NSDate date]可以获取系统当前时间
    NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];
    return currentDateStr;
}

#pragma mark -获得一个 13时间戳+八位随机数
+ (NSString *)get13tsRandTimeStr
{
    NSString *str1 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str2 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str3 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str4 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str5 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str6 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str7 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    NSString *str8 = [NSString stringWithFormat:@"%d",arc4random() % 10];
    
    NSString *timeStamp = [NSString stringWithFormat:@"%ld",[self getNow13NumTimestamp]];
    
    NSString *randTimeStr = [NSString stringWithFormat:@"%@%@%@%@%@%@%@%@%@",timeStamp,str1,str2,str3,str4,str5,str6,str7,str8];
    return randTimeStr;
}
#pragma mark - 获取当前13位时间戳
+ (NSInteger)getNow13NumTimestamp{
    NSInteger timeStamp10 = [self getNowTimestamp];
    //    NSLog(@"设备当前的13位时间戳:%ld",(long)timeSp); //时间戳的值
    return timeStamp10* 1000;
}
#pragma mark -转化为10位时间戳
+ (NSInteger)getNow10NumTimestamp{
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateStyle:NSDateFormatterMediumStyle];
    [formatter setTimeStyle:NSDateFormatterShortStyle];
    [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];//现在时间
    //    NSLog(@"设备当前的时间:%@",[formatter stringFromDate:datenow]);
    //时间转时间戳的方法:
    NSInteger timeSp = [[NSNumber numberWithDouble:[datenow timeIntervalSince1970]] integerValue];
    //    NSLog(@"设备当前的时间戳:%ld",(long)timeSp); //时间戳的值
    return timeSp;
}
#pragma mark - 根据时间戳返回时间
+ (NSString *)getDateByTimeStamp:(NSString *)timeStampString
{
    
    // iOS 生成的时间戳是10位
    NSTimeInterval interval    =[timeStampString doubleValue] / 1000.0;
    NSDate *date               = [NSDate dateWithTimeIntervalSince1970:interval];
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString *dateString       = [formatter stringFromDate: date];
    return dateString;
}
#pragma mark -获取系统当前时间
+ (NSString *)getyyMMddStr
{
    //实例化一个NSDateFormatter对象
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    //设定时间格式,这里可以设置成自己需要的格式
    [dateFormatter setDateFormat:@"yyyyMMdd"];
    //用[NSDate date]可以获取系统当前时间
    NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];
    return currentDateStr;
}
#pragma mark -一个时间戳与当前时间的间隔(s)
+ (NSInteger)getIntervalsWithTimeStamp:(NSTimeInterval)timeStamp {
    return [[NSDate date]timeIntervalSinceDate:[self getDateWithTimeStamp:timeStamp]];
}
// 时间戳转换为时间
+ (NSDate *)getDateWithTimeStamp:(NSTimeInterval)timeStamp
{
    return [NSDate dateWithTimeIntervalSince1970:timeStamp * 0.001 * 0.001];
}
// 时间转换为时间戳,精确到微秒
+ (NSTimeInterval)getTimeStampWithDate:(NSDate *)date
{
    return [[NSNumber numberWithDouble:[date timeIntervalSince1970] * 1000 * 1000] longLongValue];
}
+ (NSTimeInterval)get10TimeStampWithDate:(NSDate *)date{
    return [[NSNumber numberWithDouble:[date timeIntervalSince1970]] longLongValue];
}

#pragma mark - 根据时间戳返回时间
+ (NSString *)getDateByTimeStamp:(NSString *)timeStampString formatter:(NSString *)formatterStr {
    if(timeStampString.length == 13){
        NSTimeInterval interval = [timeStampString doubleValue] / 1000.0;
        NSDate *date = [NSDate dateWithTimeIntervalSince1970:interval];
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:formatterStr];
        NSString *dateString = [formatter stringFromDate: date];
        return dateString;
    }
    // iOS 生成的时间戳是10位
    NSTimeInterval interval = [timeStampString doubleValue];
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:interval];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:formatterStr];
    NSString *dateString = [formatter stringFromDate: date];
    return dateString;
    
}

//传入 秒  得到 xx:xx:xx
+ (NSString *)getMMSSFromSS:(NSString *)totalTime{
    if(!totalTime){
        return @"00:00:00";
    }
    NSInteger seconds = [totalTime integerValue];
    
    //format of hour
    NSString *str_hour = [NSString stringWithFormat:@"%02ld",seconds/3600];
    //format of minute
    NSString *str_minute = [NSString stringWithFormat:@"%02ld",(seconds%3600)/60];
    //format of second
    NSString *str_second = [NSString stringWithFormat:@"%02ld",seconds%60];
    //format of time
    NSString *format_time = [NSString stringWithFormat:@"%@:%@:%@",str_hour,str_minute,str_second];
    
    return format_time;
    
}
@end