當(dāng)前時間是否在時間段內(nèi) (忽略年月日)
- (BOOL)judgeTimeByStartAndEnd:(NSString *)startTime withExpireTime:(NSString *)expireTime {
NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
// 時間格式,此處遇到過坑,建議時間HH大寫,手機(jī)24小時進(jìn)制和12小時禁止都可以完美格式化
[dateFormat setDateFormat:@"HH:mm"];
NSString * todayStr=[dateFormat stringFromDate:today];//將日期轉(zhuǎn)換成字符串
today=[ dateFormat dateFromString:todayStr];//轉(zhuǎn)換成NSDate類型生蚁。日期置為方法默認(rèn)日期
//startTime格式為 02:22 expireTime格式為 12:44
NSDate *start = [dateFormat dateFromString:startTime];
NSDate *expire = [dateFormat dateFromString:expireTime];
if ([today compare:start] == NSOrderedDescending && [today compare:expire] == NSOrderedAscending) {
return YES;
}
return NO;
}
當(dāng)前時間是否在時間段內(nèi) (完整時間)
-(BOOL)judgeTimeByStartAndEnd:(NSString *)startStr EndTime:(NSString *)endStr
{
//獲取當(dāng)前時間
NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
// 時間格式,建議大寫 HH 使用 24 小時制揭保;hh 12小時制
[dateFormat setDateFormat:@"yyyy:mm:HH:mm:ss"];
NSString * todayStr=[dateFormat stringFromDate:today];//將日期轉(zhuǎn)換成字符串
today=[ dateFormat dateFromString:todayStr];//轉(zhuǎn)換成NSDate類型榴都。日期置為方法默認(rèn)日期
//start end 格式 "2016-05-18 9:00:00"
NSDate *start = [dateFormat dateFromString:startStr];
NSDate *expire = [dateFormat dateFromString:endStr];
if ([today compare:start] == NSOrderedDescending && [today compare:expire] == NSOrderedAscending) {
return YES;
}
return NO;
}
比較兩個時間相差多少天
//創(chuàng)建兩個日期
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *startDate = [dateFormatter dateFromString:@"2017-07-26"];
NSDate *endDate = [dateFormatter dateFromString:@"2017-09-01"];
//利用NSCalendar比較日期的差異
NSCalendar *calendar = [NSCalendar currentCalendar];
/**
* 要比較的時間單位,常用如下,可以同時傳:
* NSCalendarUnitDay : 天
* NSCalendarUnitYear : 年
* NSCalendarUnitMonth : 月
* NSCalendarUnitHour : 時
* NSCalendarUnitMinute : 分
* NSCalendarUnitSecond : 秒
*/
NSCalendarUnit unit = NSCalendarUnitDay;//只比較天數(shù)差異
//比較的結(jié)果是NSDateComponents類對象
NSDateComponents *delta = [calendar components:unit fromDate:startDate toDate:endDate options:0];
NSLog(@"%ld",delta.day);
年
y 將年份 (0-9) 顯示為不帶前導(dǎo)零的數(shù)字
yy 以帶前導(dǎo)零的兩位數(shù)字格式顯示年份
yyy 以四位數(shù)字格式顯示年份
yyyy 以四位數(shù)字格式顯示年份
月
M 將月份顯示為不帶前導(dǎo)零的數(shù)字(如一月表示為 1)
MM 將月份顯示為帶前導(dǎo)零的數(shù)字(例如 01/12/01)
MMM 將月份顯示為縮寫形式(例如 Jan)
MMMM 將月份顯示為完整月份名(例如 January)
一月 Jan January
二月 Feb February
三月 Mar March
四月 Apr April
五月 May May
六月 Jun June
七月 Jul July
八月 Aug August
九月 Sep September
十月 Oct October
十一月 Nov November
十二月 Dec December
日
d 將日顯示為不帶前導(dǎo)零的數(shù)字(如 1)
dd 將日顯示為帶前導(dǎo)零的數(shù)字(如 01)
星期
EEE 將日顯示為縮寫形式(例如 Sun)
EEEE 將日顯示為全名(例如 Sunday)
星期一 Mon Monday
星期二 Tue Tuesday
星期三 Wed Wednesday
星期四 Thu Thursday
星期五 Fri Friday
星期六 Sat Saturday
星期天 Sun Sunday
小時
h 使用 12 小時制將小時顯示為不帶前導(dǎo)零的數(shù)字(例如 1:15:15 PM)
hh 使用 12 小時制將小時顯示為帶前導(dǎo)零的數(shù)字(例如 01:15:15 PM)
H 使用 24 小時制將小時顯示為不帶前導(dǎo)零的數(shù)字(例如 1:15:15)
HH 使用 24 小時制將小時顯示為帶前導(dǎo)零的數(shù)字(例如 01:15:15)
分鐘
m 將分鐘顯示為不帶前導(dǎo)零的數(shù)字(例如 12:1:15)
mm 將分鐘顯示為帶前導(dǎo)零的數(shù)字(例如 12:01:15)
秒
s 將秒顯示為不帶前導(dǎo)零的數(shù)字(例如 12:15:5)
ss 將秒顯示為帶前導(dǎo)零的數(shù)字(例如 12:15:05)
f 顯示秒的小數(shù)部分
ff 將精確顯示到百分之一秒
ffff 將精確顯示到萬分之一秒
用戶定義格式中最多可使用七個 f 符號
上午&下午
t 使用 12 小時制
中午之前任一小時顯示大寫的 A
中午到 11:59 PM 之間的任一小時顯示大寫的 P
tt 對于使用 12 小時制的區(qū)域設(shè)置
中午之前任一小時顯示大寫的 AM
中午到 11:59 PM 之間的任一小時顯示大寫的 PM
對于使用 24 小時制的區(qū)域設(shè)置纤房,不顯示任何字符
時區(qū)
z 顯示不帶前導(dǎo)零的時區(qū)偏移量
zz 顯示帶前導(dǎo)零的時區(qū)偏移量(例如 -08)
zzz 顯示完整的時區(qū)偏移量(例如 -0800)
紀(jì)元
gg 顯示時代/紀(jì)元字符串(例如 A.D.)