我需要确定时间戳是否属于我建立的一组时间范围。我正在使用以下代码:如何根据当地时区获取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”中的值都是错误的。 –