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);
}
}
我的結果:
