123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734 |
- //
- // NSDate+Extension.m
- // iOS-Categories (https://github.com/shaojiankui/iOS-Categories)
- //
- // Created by Jakey on 15/4/25.
- // Copyright (c) 2015年 www.skyfox.org. All rights reserved.
- // https://github.com/632840804/HYBNSDateExtension
- #import "NSDate+Extension.h"
- @implementation NSDate (Extension)
- // 计算截止时间
- + (NSString *)countDate:(NSDate *)beginDate endDate:(NSDate *)endDate {
-
- double intervalTime = [endDate timeIntervalSinceReferenceDate] - [beginDate timeIntervalSinceReferenceDate];
- if (intervalTime <= 0) {
- return @"已截止";
- }
- // 2.创建日历
- NSCalendar *calendar = [NSCalendar currentCalendar];
- NSCalendarUnit type = NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
- // 3.利用日历对象比较两个时间的差值
- NSDateComponents *cmps = [calendar components:type fromDate:beginDate toDate:endDate options:0];
- NSString *countStr = [NSString stringWithFormat:@"%02ld小时%02ld分",cmps.hour,cmps.minute];
- if (cmps.day > 0) {
- countStr = [NSString stringWithFormat:@"%ld天%@",cmps.day, countStr];
- }
- return countStr;
- }
- + (NSString *)countSecondDate:(NSDate *)beginDate endDate:(NSDate *)endDate {
- // 2.创建日历
- NSCalendar *calendar = [NSCalendar currentCalendar];
- NSCalendarUnit type = NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
- // 3.利用日历对象比较两个时间的差值
- NSDateComponents *cmps = [calendar components:type fromDate:beginDate toDate:endDate options:0];
- // NSString *countStr = [NSString stringWithFormat:@"%02ld小时%02ld分",cmps.hour,cmps.minute];
- NSString *countStr = nil;
- if (cmps.day == 0 && cmps.hour == 0 && cmps.minute == 0) {
- countStr = [NSString stringWithFormat:@"%ld秒前",cmps.second];
- }
- else if (cmps.day == 0 && cmps.hour == 0) {
- countStr = [NSString stringWithFormat:@"%ld分前",cmps.minute];
- }
- else if (cmps.day == 0){
- countStr = [NSString stringWithFormat:@"%ld小时前",cmps.hour];
- }
- else {
- countStr = [NSString stringWithFormat:@"%ld天前",cmps.day];
- }
- return countStr;
- }
- - (NSUInteger)day {
- return [NSDate day:self];
- }
- - (NSUInteger)month {
- return [NSDate month:self];
- }
- - (NSUInteger)year {
- return [NSDate year:self];
- }
- - (NSUInteger)hour {
- return [NSDate hour:self];
- }
- - (NSUInteger)minute {
- return [NSDate minute:self];
- }
- - (NSUInteger)second {
- return [NSDate second:self];
- }
- + (NSUInteger)day:(NSDate *)date {
- NSCalendar *calendar = [NSCalendar currentCalendar];
-
- #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
- // NSDayCalendarUnit
- NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitDay) fromDate:date];
- #else
- NSDateComponents *dayComponents = [calendar components:(NSDayCalendarUnit) fromDate:date];
- #endif
-
- return [dayComponents day];
- }
- + (NSUInteger)month:(NSDate *)date {
- NSCalendar *calendar = [NSCalendar currentCalendar];
-
- #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
- // NSDayCalendarUnit
- NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitMonth) fromDate:date];
- #else
- NSDateComponents *dayComponents = [calendar components:(NSMonthCalendarUnit) fromDate:date];
- #endif
-
- return [dayComponents month];
- }
- + (NSUInteger)year:(NSDate *)date {
- NSCalendar *calendar = [NSCalendar currentCalendar];
-
- #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
- // NSDayCalendarUnit
- NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitYear) fromDate:date];
- #else
- NSDateComponents *dayComponents = [calendar components:(NSYearCalendarUnit) fromDate:date];
- #endif
-
- return [dayComponents year];
- }
- + (NSUInteger)hour:(NSDate *)date {
- NSCalendar *calendar = [NSCalendar currentCalendar];
-
- #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
- // NSDayCalendarUnit
- NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitHour) fromDate:date];
- #else
- NSDateComponents *dayComponents = [calendar components:(NSHourCalendarUnit) fromDate:date];
- #endif
-
- return [dayComponents hour];
- }
- + (NSUInteger)minute:(NSDate *)date {
- NSCalendar *calendar = [NSCalendar currentCalendar];
-
- #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
- // NSDayCalendarUnit
- NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitMinute) fromDate:date];
- #else
- NSDateComponents *dayComponents = [calendar components:(NSMinuteCalendarUnit) fromDate:date];
- #endif
-
- return [dayComponents minute];
- }
- + (NSUInteger)second:(NSDate *)date {
- NSCalendar *calendar = [NSCalendar currentCalendar];
-
- #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
- // NSDayCalendarUnit
- NSDateComponents *dayComponents = [calendar components:(NSCalendarUnitSecond) fromDate:date];
- #else
- NSDateComponents *dayComponents = [calendar components:(NSSecondCalendarUnit) fromDate:date];
- #endif
-
- return [dayComponents second];
- }
- - (NSUInteger)daysInYear {
- return [NSDate daysInYear:self];
- }
- + (NSUInteger)daysInYear:(NSDate *)date {
- return [self isLeapYear:date] ? 366 : 365;
- }
- - (BOOL)isLeapYear {
- return [NSDate isLeapYear:self];
- }
- + (BOOL)isLeapYear:(NSDate *)date {
- NSUInteger year = [date year];
- if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
- return YES;
- }
- return NO;
- }
- - (NSString *)formatYMD {
- return [NSDate formatYMD:self];
- }
- + (NSString *)formatYMD:(NSDate *)date {
- return [NSString stringWithFormat:@"%lu-%02lu-%02lu",[date year],[date month], [date day]];
- }
- - (NSString *)formatYMDHMS {
- return [NSDate formatYMDHMS:self];
- }
- + (NSString *)formatYMDHMS:(NSDate *)date {
- return [NSString stringWithFormat:@"%lu-%02lu-%02lu %02lu-%02lu-%02lu",[date year],[date month], [date day], [date hour], [date minute], [date second]];
- }
- - (NSUInteger)weeksOfMonth {
- return [NSDate weeksOfMonth:self];
- }
- + (NSUInteger)weeksOfMonth:(NSDate *)date {
- return [[date lastdayOfMonth] weekOfYear] - [[date begindayOfMonth] weekOfYear] + 1;
- }
- - (NSUInteger)weekOfYear {
- return [NSDate weekOfYear:self];
- }
- + (NSUInteger)weekOfYear:(NSDate *)date {
- NSUInteger i;
- NSUInteger year = [date year];
-
- NSDate *lastdate = [date lastdayOfMonth];
-
- for (i = 1;[[lastdate dateAfterDay:-7 * i] year] == year; i++) {
-
- }
-
- return i;
- }
- - (NSDate *)dateAfterDay:(NSUInteger)day {
- return [NSDate dateAfterDate:self day:day];
- }
- + (NSDate *)dateAfterDate:(NSDate *)date day:(NSInteger)day {
- NSCalendar *calendar = [NSCalendar currentCalendar];
- NSDateComponents *componentsToAdd = [[NSDateComponents alloc] init];
- [componentsToAdd setDay:day];
-
- NSDate *dateAfterDay = [calendar dateByAddingComponents:componentsToAdd toDate:date options:0];
-
- return dateAfterDay;
- }
- - (NSDate *)dateAfterMonth:(NSUInteger)month {
- return [NSDate dateAfterDate:self month:month];
- }
- + (NSDate *)dateAfterDate:(NSDate *)date month:(NSInteger)month {
- NSCalendar *calendar = [NSCalendar currentCalendar];
- NSDateComponents *componentsToAdd = [[NSDateComponents alloc] init];
- [componentsToAdd setMonth:month];
- NSDate *dateAfterMonth = [calendar dateByAddingComponents:componentsToAdd toDate:date options:0];
-
- return dateAfterMonth;
- }
- - (NSDate *)begindayOfMonth {
- return [NSDate begindayOfMonth:self];
- }
- + (NSDate *)begindayOfMonth:(NSDate *)date {
- return [self dateAfterDate:date day:-[date day] + 1];
- }
- - (NSDate *)lastdayOfMonth {
- return [NSDate lastdayOfMonth:self];
- }
- + (NSDate *)lastdayOfMonth:(NSDate *)date {
- NSDate *lastDate = [self begindayOfMonth:date];
- return [[lastDate dateAfterMonth:1] dateAfterDay:-1];
- }
- - (NSUInteger)daysAgo {
- return [NSDate daysAgo:self];
- }
- + (NSUInteger)daysAgo:(NSDate *)date {
- NSCalendar *calendar = [NSCalendar currentCalendar];
-
- #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
- NSDateComponents *components = [calendar components:(NSCalendarUnitDay)
- fromDate:date
- toDate:[NSDate date]
- options:0];
- #else
- NSDateComponents *components = [calendar components:(NSDayCalendarUnit)
- fromDate:date
- toDate:[NSDate date]
- options:0];
- #endif
-
- return [components day];
- }
- - (NSInteger)weekday {
- return [NSDate weekday:self];
- }
- + (NSInteger)weekday:(NSDate *)date {
- NSCalendar *gregorian = [[NSCalendar alloc]
- initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
- NSDateComponents *comps = [gregorian components:(NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear | NSCalendarUnitWeekday) fromDate:date];
- NSInteger weekday = [comps weekday];
-
- return weekday;
- }
- - (NSString *)dayFromWeekday {
- return [NSDate dayFromWeekday:self];
- }
- + (NSString *)dayFromWeekday:(NSDate *)date {
- switch([date weekday]) {
- case 1:
- return @"星期天";
- break;
- case 2:
- return @"星期一";
- break;
- case 3:
- return @"星期二";
- break;
- case 4:
- return @"星期三";
- break;
- case 5:
- return @"星期四";
- break;
- case 6:
- return @"星期五";
- break;
- case 7:
- return @"星期六";
- break;
- default:
- break;
- }
- return @"";
- }
- + (NSString *)shortDayFromWeekday:(NSDate *)date {
- switch([date weekday]) {
- case 1:
- return @"周日";
- break;
- case 2:
- return @"周一";
- break;
- case 3:
- return @"周二";
- break;
- case 4:
- return @"周三";
- break;
- case 5:
- return @"周四";
- break;
- case 6:
- return @"周五";
- break;
- case 7:
- return @"周六";
- break;
- default:
- break;
- }
- return @"";
- }
- - (BOOL)isSameDay:(NSDate *)anotherDate {
- NSCalendar *calendar = [NSCalendar currentCalendar];
- NSDateComponents *components1 = [calendar components:(NSCalendarUnitYear
- | NSCalendarUnitMonth
- | NSCalendarUnitDay)
- fromDate:self];
- NSDateComponents *components2 = [calendar components:(NSCalendarUnitYear
- | NSCalendarUnitMonth
- | NSCalendarUnitDay)
- fromDate:anotherDate];
- return ([components1 year] == [components2 year]
- && [components1 month] == [components2 month]
- && [components1 day] == [components2 day]);
- }
- - (BOOL)isSameYear:(NSDate *)anotherDate {
- NSCalendar *calendar = [NSCalendar currentCalendar];
- NSDateComponents *components1 = [calendar components:(NSCalendarUnitYear
- | NSCalendarUnitMonth
- | NSCalendarUnitDay)
- fromDate:self];
- NSDateComponents *components2 = [calendar components:(NSCalendarUnitYear
- | NSCalendarUnitMonth
- | NSCalendarUnitDay)
- fromDate:anotherDate];
- return ([components1 year] == [components2 year]);
- }
- - (BOOL)isToday {
- return [self isSameDay:[NSDate date]];
- }
- /// 是否今年
- - (BOOL)isCurrentYear {
- return [self isSameYear:[NSDate date]];
- }
- - (NSDate *)dateByAddingDays:(NSUInteger)days {
- NSDateComponents *c = [[NSDateComponents alloc] init];
- c.day = days;
- return [[NSCalendar currentCalendar] dateByAddingComponents:c toDate:self options:0];
- }
- /**
- * Get the month as a localized string from the given month number
- *
- * @param month The month to be converted in string
- * [1 - January]
- * [2 - February]
- * [3 - March]
- * [4 - April]
- * [5 - May]
- * [6 - June]
- * [7 - July]
- * [8 - August]
- * [9 - September]
- * [10 - October]
- * [11 - November]
- * [12 - December]
- *
- * @return Return the given month as a localized string
- */
- + (NSString *)monthWithMonthNumber:(NSInteger)month {
- switch(month) {
- case 1:
- return @"January";
- break;
- case 2:
- return @"February";
- break;
- case 3:
- return @"March";
- break;
- case 4:
- return @"April";
- break;
- case 5:
- return @"May";
- break;
- case 6:
- return @"June";
- break;
- case 7:
- return @"July";
- break;
- case 8:
- return @"August";
- break;
- case 9:
- return @"September";
- break;
- case 10:
- return @"October";
- break;
- case 11:
- return @"November";
- break;
- case 12:
- return @"December";
- break;
- default:
- break;
- }
- return @"";
- }
- + (NSString *)stringWithDate:(NSDate *)date format:(NSString *)format {
- return [date stringWithFormat:format];
- }
- - (NSString *)stringWithFormat:(NSString *)format {
- NSDateFormatter *outputFormatter = [NSObject getDateformatter];
- [outputFormatter setDateFormat:format];
-
- NSString *retStr = [outputFormatter stringFromDate:self];
-
- return retStr;
- }
- + (NSDate *)dateWithString:(NSString *)string dateFormat:(NSString *)format {
- NSDateFormatter *inputFormatter = [NSObject getDateformatter];
- [inputFormatter setDateFormat:format];
-
- NSDate *date = [inputFormatter dateFromString:string];
-
- return date;
- }
- - (NSUInteger)daysInMonth:(NSUInteger)month {
- return [NSDate daysInMonth:self month:month];
- }
- + (NSUInteger)daysInMonth:(NSDate *)date month:(NSUInteger)month {
- switch (month) {
- case 1: case 3: case 5: case 7: case 8: case 10: case 12:
- return 31;
- case 2:
- return [date isLeapYear] ? 29 : 28;
- }
- return 30;
- }
- - (NSUInteger)daysInMonth {
- return [NSDate daysInMonth:self];
- }
- + (NSUInteger)daysInMonth:(NSDate *)date {
- return [self daysInMonth:date month:[date month]];
- }
- - (NSString *)timeInfo {
- return [NSDate timeInfoWithDate:self];
- }
- + (NSString *)timeInfoWithDate:(NSDate *)date {
- return [self timeInfoWithDateString:[self stringWithDate:date format:[self ymdHmsFormat]]];
- }
- + (NSString *)timeInfoWithDateString:(NSString *)dateString {
- NSDate *date = [self dateWithString:dateString dateFormat:[self ymdHmsFormat]];
-
- NSDate *curDate = [NSDate date];
- NSTimeInterval time = -[date timeIntervalSinceDate:curDate];
-
- int month = (int)([curDate month] - [date month]);
- int year = (int)([curDate year] - [date year]);
- int day = (int)([curDate day] - [date day]);
-
- NSTimeInterval retTime = 1.0;
- if (time < 3600) { // 小于一小时
- retTime = time / 60;
- retTime = retTime <= 0.0 ? 1.0 : retTime;
- return [NSString stringWithFormat:@"%.0f分钟前", retTime];
- } else if (time < 3600 * 24) { // 小于一天,也就是今天
- retTime = time / 3600;
- retTime = retTime <= 0.0 ? 1.0 : retTime;
- return [NSString stringWithFormat:@"%.0f小时前", retTime];
- } else if (time < 3600 * 24 * 2) {
- return @"昨天";
- }
- // 第一个条件是同年,且相隔时间在一个月内
- // 第二个条件是隔年,对于隔年,只能是去年12月与今年1月这种情况
- else if ((abs(year) == 0 && abs(month) <= 1)
- || (abs(year) == 1 && [curDate month] == 1 && [date month] == 12)) {
- int retDay = 0;
- if (year == 0) { // 同年
- if (month == 0) { // 同月
- retDay = day;
- }
- }
-
- if (retDay <= 0) {
- // 获取发布日期中,该月有多少天
- int totalDays = (int)[self daysInMonth:date month:[date month]];
-
- // 当前天数 + (发布日期月中的总天数-发布日期月中发布日,即等于距离今天的天数)
- retDay = (int)[curDate day] + (totalDays - (int)[date day]);
- }
-
- return [NSString stringWithFormat:@"%d天前", (abs)(retDay)];
- } else {
- if (abs(year) <= 1) {
- if (year == 0) { // 同年
- return [NSString stringWithFormat:@"%d个月前", abs(month)];
- }
-
- // 隔年
- int month = (int)[curDate month];
- int preMonth = (int)[date month];
- if (month == 12 && preMonth == 12) {// 隔年,但同月,就作为满一年来计算
- return @"1年前";
- }
- return [NSString stringWithFormat:@"%d个月前", (abs)(12 - preMonth + month)];
- }
-
- return [NSString stringWithFormat:@"%d年前", abs(year)];
- }
-
- return @"1小时前";
- }
- - (NSString *)ymdFormat {
- return [NSDate ymdFormat];
- }
- - (NSString *)hmsFormat {
- return [NSDate hmsFormat];
- }
- - (NSString *)ymdHmsFormat {
- return [NSDate ymdHmsFormat];
- }
- + (NSString *)ymdFormat {
- return @"yyyy-MM-dd";
- }
- + (NSString *)hmsFormat {
- return @"HH:mm:ss";
- }
- + (NSString *)ymdHmsFormat {
- return [NSString stringWithFormat:@"%@ %@", [self ymdFormat], [self hmsFormat]];
- }
- - (NSDate *)offsetYears:(int)numYears {
- return [NSDate offsetYears:numYears fromDate:self];
- }
- + (NSDate *)offsetYears:(int)numYears fromDate:(NSDate *)fromDate {
- if (fromDate == nil) {
- return nil;
- }
-
- #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
- // NSDayCalendarUnit
- NSCalendar *gregorian = [[NSCalendar alloc]
- initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
- #else
- NSCalendar *gregorian = [[NSCalendar alloc]
- initWithCalendarIdentifier:NSGregorianCalendar];
- #endif
-
-
- NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
- [offsetComponents setYear:numYears];
-
- return [gregorian dateByAddingComponents:offsetComponents
- toDate:fromDate
- options:0];
- }
- - (NSDate *)offsetMonths:(int)numMonths {
- return [NSDate offsetMonths:numMonths fromDate:self];
- }
- + (NSDate *)offsetMonths:(int)numMonths fromDate:(NSDate *)fromDate {
- if (fromDate == nil) {
- return nil;
- }
-
- #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
- // NSDayCalendarUnit
- NSCalendar *gregorian = [[NSCalendar alloc]
- initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
- #else
- NSCalendar *gregorian = [[NSCalendar alloc]
- initWithCalendarIdentifier:NSGregorianCalendar];
- #endif
-
-
- NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
- [offsetComponents setMonth:numMonths];
-
- return [gregorian dateByAddingComponents:offsetComponents
- toDate:fromDate
- options:0];
- }
- - (NSDate *)offsetDays:(int)numDays {
- return [NSDate offsetDays:numDays fromDate:self];
- }
- + (NSDate *)offsetDays:(int)numDays fromDate:(NSDate *)fromDate {
- if (fromDate == nil) {
- return nil;
- }
-
- #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
- // NSDayCalendarUnit
- NSCalendar *gregorian = [[NSCalendar alloc]
- initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
- #else
- NSCalendar *gregorian = [[NSCalendar alloc]
- initWithCalendarIdentifier:NSGregorianCalendar];
- #endif
-
-
- NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
- [offsetComponents setDay:numDays];
-
- return [gregorian dateByAddingComponents:offsetComponents
- toDate:fromDate
- options:0];
- }
- - (NSDate *)offsetHours:(int)hours {
- return [NSDate offsetHours:hours fromDate:self];
- }
- + (NSDate *)offsetHours:(int)numHours fromDate:(NSDate *)fromDate {
- if (fromDate == nil) {
- return nil;
- }
-
- #if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0
- // NSDayCalendarUnit
- NSCalendar *gregorian = [[NSCalendar alloc]
- initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
- #else
- NSCalendar *gregorian = [[NSCalendar alloc]
- initWithCalendarIdentifier:NSGregorianCalendar];
- #endif
-
-
- NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
- [offsetComponents setHour:numHours];
-
- return [gregorian dateByAddingComponents:offsetComponents
- toDate:fromDate
- options:0];
- }
- // get current timestamp sice 1970
- + (NSString *)getCurrentTimestamp {
- // 以下这个结果是10位数,interval得出的数会有6位小数,应该是精确到微秒
- NSTimeInterval interval = [[NSDate date] timeIntervalSince1970] *1000000;
- NSString *time = [[NSString stringWithFormat:@"%f",interval] replaceAll:@"." WithString:@"-"];
- NSString *timestamp = time;
- return timestamp;
- }
- // get current timestamp sice 1970 base64
- + (NSString *)getCurrentTimestampFor64 {
- // 以下这个结果是10位数,interval得出的数会有6位小数,应该是精确到微秒
- NSTimeInterval interval = [[NSDate date] timeIntervalSince1970] *1000000;
- NSString *time = [[NSString stringWithFormat:@"%f",interval] replaceAll:@"." WithString:@""];
- NSString *timestamp = time;
- return [timestamp ks_base64EncodedString];
- }
- @end
|