php date 判断是中午,获取系统时间,判断是时间段(早上,上午,中午,下午,晚上)...

//将时间点转化成日历形式

- (NSDate *)getCustomDateWithHour:(NSInteger)hour

{

//获取当前时间

NSDate * destinationDateNow = [NSDate date];

NSCalendar *currentCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

NSDateComponents*currentComps = [[NSDateComponentsalloc] init];

NSIntegerunitFlags =NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond;

currentComps = [currentCalendar components:unitFlags fromDate:destinationDateNow];

//设置当前的时间点

NSDateComponents*resultComps = [[NSDateComponentsalloc] init];

[resultComps setYear:[currentComps year]];

[resultComps setMonth:[currentComps month]];

[resultComps setDay:[currentComps day]];

[resultComps setHour:hour];

NSCalendar *resultCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

return [resultCalendar dateFromComponents:resultComps];

}

//获取时间段

-(NSString *)getTheTimeBucket

{

//    NSDate * currentDate = [self getNowDateFromatAnDate:[NSDate date]];

NSDate * currentDate = [NSDate date];

if ([currentDate compare:[self getCustomDateWithHour:0]] == NSOrderedDescending && [currentDate compare:[self getCustomDateWithHour:9]] == NSOrderedAscending)

{

return @"早上好";

}

else if ([currentDate compare:[self getCustomDateWithHour:9]] == NSOrderedDescending && [currentDate compare:[self getCustomDateWithHour:11]] == NSOrderedAscending)

{

return @"上午好";

}

else if ([currentDate compare:[self getCustomDateWithHour:11]] == NSOrderedDescending && [currentDate compare:[self getCustomDateWithHour:13]] == NSOrderedAscending)

{

return @"中午好";

}

else if ([currentDate compare:[self getCustomDateWithHour:13]] == NSOrderedDescending && [currentDate compare:[self getCustomDateWithHour:18]] == NSOrderedAscending)

{

return @"下午好";

}

else

{

return @"晚上好";

}

} //  [

self

getTheTimeBucket] 这样就得到时间段了

扩展 通过[NSDate date]获得的时间可能与当前的系统时间不一样,这是因为时区时差的缘故

//考虑时区,获取准备的系统时间方法

- (NSDate *)getNowDateFromatAnDate:(NSDate *)anyDate

{

//设置源日期时区

NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];//或GMT

//设置转换后的目标日期时区

NSTimeZone* destinationTimeZone = [NSTimeZone localTimeZone];

//得到源日期与世界标准时间的偏移量

NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:anyDate];

//目标日期与本地时区的偏移量

NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:anyDate];

//得到时间偏移量的差值

NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;

//转为现在时间

NSDate* destinationDateNow = [[NSDate alloc] initWithTimeInterval:interval sinceDate:anyDate];

return destinationDateNow;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值