我需要確定時間戳是否屬於我建立的一組時間範圍。我正在使用以下代碼:如何根據當地時區獲取NSDate的小時組件?
- (BOOL) timeStampInTimeRange: (NSDate *)timestamp {
NSCalendar* calendar = [NSCalendar currentCalendar];
NSDateComponents* components = [calendar components:NSCalendarUnitHour fromDate:timestamp];
NSInteger hour = [components hour];
for(int i = 0; i < [timesOfDay count]; i++){
NSArray *range = timesOfDay[i];
if((hour >= [range[0] intValue]) && (hour < [range[1] intValue])){
return TRUE;
}
}
return FALSE;
}
但是,這實際上是檢查GMT時區的小時,而不是我的本地時區。我看到如何調整整個日期以根據當地時區打印出來,但如何根據當地時區抓取小時?
'NSCalendar'使用本地時區,除非你另有告知。其中一項:您的日期,設備的設置或「timesOfDay」中的值都是錯誤的。 –