把類似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;
}
根據開始時間和時間差倒計時
-(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"];
//設置時間間隔(秒)(這個我是計算出來的,不知道有沒有簡便的方法 )
//? ? NSTimeInterval time = 365 * 24 * 60 * 60;//一年的秒數
//得到一年之前的當前時間(-:表示向前的時間間隔(即去年)卦溢,如果沒有锥惋,則表示向后的時間間隔(即明年))
NSDate * lastYear = [date dateByAddingTimeInterval:-time];
//轉化為字符串
NSString * startDate = [dateFormatter stringFromDate:lastYear];
return startDate;
}
舉個例子:
/*
場景: 后臺返回一個時間字符串 需要一段時間倒計時
我的思想是 用返回的時間字符串 減去 一個時間差 無論什么地區(qū)的時間 時間差一定是一樣的
這個時間差 就是 請求數據的或者 收到數據的時候 把當前時間保存 然后 最新的當前時間與保存的當前時間 計算時間差
注意: yyyy-MM-dd HH:mm:ss 這個時間的格式 需要根據需求而定
*/
NSDate * newdata = [NSDate date]; //當前時間
//? ? NSLog(@"_locationDate == %@",_locationDate);
//_locationDate 為剛開始請求數據的時間
_timeInterval = [newdata timeIntervalSinceDate:_locationDate];// 計算剛開始請求數據與當前時間的時間差
NSString * timeString = @"2017-10-09 12:11:11"; //需要倒計時的起始時間
NSDate * begindate = [self getDateWithString:timeString]; //把起始時間轉為date
NSString * endTime = [self getTempTimeWithtimeinterval:_timeInterval beginTime:begindate]; //輸出起始時間減去時差的結果