IOS開發之OC篇(10)—— NSDate。
Xcode 8.2.1
沒什麼可說的,直接上代碼吧。注意實例化日期解析器和設置它的格式。等到後面寫到UI篇的時候再提及。
int main(int argc, char * argv[]) { //時間戳:計算機元年(1970年1月1日)距離當前時間的總秒數 //服務器給時間時(如截止日期),最好給時間戳,比較好處理 //日期解析器:將日期按某種格式輸出 //默認時區:格林威治標准時間GMT //獲取計算機當前的時間(GMT) NSDate *currentDate = [NSDate date]; NSLog(@"格林威治標准時間GMT:%@",currentDate); //日期解析器 NSDateFormatter *dateFormatter = [NSDateFormatter new]; //設置時區 dateFormatter.timeZone = [NSTimeZone timeZoneWithName:@"Beijing"]; // dateFormatter.timeZone = [NSTimeZone systemTimeZone]; //與設備系統時區一致 //設置日期格式 dateFormatter.dateFormat = @"YYYY-MM-dd HH:mm:ss"; //可刪掉不需要的,“-”可換成其他字符,如“:” dateFormatter.dateFormat = @"YYYY:MM:dd HH:mm:ss"; //把NSDate對象轉換成字符串輸出 NSString *dateStr = [dateFormatter stringFromDate:currentDate]; NSLog(@"當前北京時間:%@",dateStr); //把字符串轉換成NSDate對象 NSDate *distanceDate = [dateFormatter dateFromString:@"2033:03:03 15:33:33"]; //格式需與之前設置的dateFormat一樣 if (distanceDate) { //轉換成功 //計算兩個時間相差的總秒數 NSInteger seconds = [currentDate timeIntervalSinceDate:distanceDate]; NSLog(@"剩余%ld天%ld小時%ld分%ld秒到期",seconds/(3600*24),seconds%(3600*24)/3600,seconds%3600/60,seconds%60); //距離現在的時間 NSInteger seconds1 = distanceDate.timeIntervalSinceNow; NSLog(@"距離現在有%ld秒",(long)seconds1); //距離1970年時間 NSInteger seconds2 = distanceDate.timeIntervalSince1970; NSLog(@"距離1970年有%ld秒",(long)seconds2); } }
我的結果: