如果日期介于范围之间,我可以找到如何获得,但我似乎无法在特定时间创建日期。
查看[NSDate日期]是否介于某个时间范围内最简单的方法是什么?
我想显示如下的个性化问候语:
12 pm - 4:59:9999 pm @“下午好,foo”
下午5点 - 11:59:9999 @“晚上好,foo”
上午12点 - 11:59:9999上午@“早上好,foo”
答案 0 :(得分:51)
是的,您可以使用NSDateComponents
,它将以24小时格式返回小时。
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSHourCalendarUnit fromDate:[NSDate date]];
NSInteger hour = [components hour];
if(hour >= 0 && hour < 12)
NSLog(@"Good morning, foo");
else if(hour >= 12 && hour < 17)
NSLog(@"Good afternoon, foo");
else if(hour >= 17)
NSLog(@"Good evening, foo");
Swift 3
let hour = Calendar.current.component(.hour, from: Date())
if hour >= 0 && hour < 12 {
print("Good Morning")
} else if hour >= 12 && hour < 17 {
print("Good Afternoon")
} else if hour >= 17 {
print("Good Evening")
}
答案 1 :(得分:2)
针对Swift 3.0进行了更新
let hour = Calendar.current.component(.hour, from: Date())
if hour >= 0 && hour < 12 {
print("Good Morning")
} else if hour >= 12 && hour < 17 {
print("Good Afternoon")
} else if hour >= 17 {
print("Good Evening")
}
答案 2 :(得分:1)
使用NSCalendar
实例从NSDateComponents
创建NSDate
个实例,然后只需检查NSDateComponents
的小时,分钟和秒属性,并提供相应的消息。
答案 3 :(得分:0)
中午位于 12:00 PM 。 下午从 12:01 PM 到 5:00 PM 。 晚上从下午5:01 到晚上8点,或在日落时分。 夜晚是从日落到日出,所以从 8:01 PM到 5:59 AM。
object
答案 4 :(得分:-1)
您可以使用课程NSDate
来获取iPhone上的时间。
NSDate * today = [NSDate date];
NSCalendar * cal = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
NSDateComponents * comps = [cal components:NSHourCalendarUnit fromDate:today];
if ( [comps hour]>0 && [comps hour] < 12 )
NSLog(@"Good morning, foo");
if ( [comps hour] > 12 && [comps hour] < 17 )
NSLog(@"Good afternoon, foo");
if ( [comps hour] >17 && [comps hour]<24 )
NSLog(@"Good evening, foo");