把類似2017-09-08 12:33:10的字符串變?yōu)闀r間date
-(NSDate *)getDateWithString:(NSString *)dateString{
NSString* string = dateString;
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]];
[inputFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate* inputDate = [inputFormatter dateFromString:string];
return inputDate;
}
根據(jù)開始時間和時間差倒計時
-(NSString *)getTempTimeWithtimeinterval:(NSTimeInterval)time beginTime:(NSDate*)date{
//? ? NSDate * date = [NSDate date];
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
//設(shè)置時間間隔(秒)(這個我是計算出來的,不知道有沒有簡便的方法 )
//? ? NSTimeInterval time = 365 * 24 * 60 * 60;//一年的秒數(shù)
//得到一年之前的當(dāng)前時間(-:表示向前的時間間隔(即去年),如果沒有,則表示向后的時間間隔(即明年))
NSDate * lastYear = [date dateByAddingTimeInterval:-time];
//轉(zhuǎn)化為字符串
NSString * startDate = [dateFormatter stringFromDate:lastYear];
return startDate;
}
舉個例子:
/*
場景: 后臺返回一個時間字符串 需要一段時間倒計時
我的思想是 用返回的時間字符串 減去 一個時間差 無論什么地區(qū)的時間 時間差一定是一樣的
這個時間差 就是 請求數(shù)據(jù)的或者 收到數(shù)據(jù)的時候 把當(dāng)前時間保存 然后 最新的當(dāng)前時間與保存的當(dāng)前時間 計算時間差
注意: yyyy-MM-dd HH:mm:ss 這個時間的格式 需要根據(jù)需求而定
*/
NSDate * newdata = [NSDate date]; //當(dāng)前時間
//? ? NSLog(@"_locationDate == %@",_locationDate);
//_locationDate 為剛開始請求數(shù)據(jù)的時間
_timeInterval = [newdata timeIntervalSinceDate:_locationDate];// 計算剛開始請求數(shù)據(jù)與當(dāng)前時間的時間差
NSString * timeString = @"2017-10-09 12:11:11"; //需要倒計時的起始時間
NSDate * begindate = [self getDateWithString:timeString]; //把起始時間轉(zhuǎn)為date
NSString * endTime = [self getTempTimeWithtimeinterval:_timeInterval beginTime:begindate]; //輸出起始時間減去時差的結(jié)果