標籤:
結合NSCalendar和NSDate能做更多的日期\時間處理 獲得NSCalendar對象
NSCalendar *calendar = [NSCalendar currentCalendar];?獲得年月日
- (NSDateComponents *)components:(NSCalendarUnit)unitFlags fromDate:(NSDate *)date;
//建立日期
NSDate?*d = [NSDate?date];
//建立日期對象
NSCalendar?*ca = [NSCalendar?currentCalendar];
//獲得時間組件
NSDateComponents?*cms= [ca?components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:d];
NSLog(@"%ld-%ld-%ld",cms.year,cms.month,cms.day);
比較兩個日期的差距
- (NSDateComponents *)components:(NSCalendarUnit)unitFlags fromDate:(NSDate *) startingDate toDate:(NSDate *)resultDate options:(NSCalendarOptions)opts;
NSString *time1 [email protected]"2014-04-08 20:50:40"; NSString *time2 [email protected]"2014-04-04 18:45:30";
NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; fmt.dateFormat [email protected]"yyyy-MM-dd HH:mm:ss";
NSDate *date1 = [fmt dateFromString:time1]; NSDate *date2 = [fmt dateFromString:time2];
?//取時間較早的那個? ?? [date2?earlierDate:date1];? ? ? ??//取較晚的那個? ?? [date2?laterDate:date1];
//把字串轉換成日期
? ? ? ? //和上邊類似,仍然需要日期格式化對象,但是調用的方法從stringFromDate變成
? ? ? ? //因為時區設定的問題,這個日期被減去了一天
? ? ? ? NSDateFormatter?*format2=[[NSDateFormatter?alloc]init];
? ? ? ? [format2?setDateFormat:@"yyyy/MM/dd"];
? ? ? ? NSString?*[email protected]"2014/10/11";
? ? ? ? NSLog(@"%@",[format2?dateFromString:str2]);
// 1.建立一個日曆對象
NSCalendar?*calendar = [NSCalendar?currentCalendar];
// 2.比較時間的差距
int?unit =?NSCalendarUnitYear?|?NSCalendarUnitMonth?|?NSCalendarUnitDay
|?NSCalendarUnitHour?|?NSCalendarUnitMinute?|?NSCalendarUnitSecond;?
NSDateComponents?*cmps = [calendar?components:unit?fromDate:date2?toDate:date1?options:0];
NSLog(@"相差%ld年%ld月%ld天%ld小時%ld分鐘%ld秒", cmps.year, cmps.month, cmps.day, cmps.hour, cmps.minute, cmps.second);
計算日期//1)明天的此刻NSTimeInterval secondsPerDay = 24*60*60;
NSDate *tomorrow = [NSDate dateWithTimeIntervalSinceNow:secondsPerDay]; NSLog(@"myDate = %@",tomorrow);
//2)昨天的現在
NSTimeInterval secondsPerDay1 = 24*60*60;
NSDate *now = [NSDate date];NSDate *yesterDay = [now addTimeInterval:-secondsPerDay1]; NSLog(@"yesterDay = %@",yesterDay);
格式化日期
NSDate ----> dateString
//定義NSDate
NSDate?*d1 = [NSDate?date];
//定義日期時間格式化的類
NSDateFormatter?*formatter = [[NSDateFormatter?alloc]?init]; [email protected]"yyyy-MM-dd HH:mm:ss";
//把Date轉換為dataStr
NSString?*dateStr = [formatter?stringFromDate:d1];
IOS中級篇 —— 日期時間對象