我想以整数形式获取当前的小时和分钟。因此,如果现在是凌晨 3:16,我想得到两个整数:3 和 16。
但看起来 [NSDate date]
会给出自 1970 年以来的秒数,或者它可以给出当前时间表示的字符串,但是没有简单的方法将它们作为整数获取?
我在 Getting current time 中看到一个帖子,但它涉及 NSDateComponents
和 NSCalendar
?那太复杂了......所需要的只是像
NSDate *date = [NSDate date];
int hour = [date getHour]; // which is not possible
有没有比使用 3 个类 NSDate
、NSDateComponents
和 NSCalendar
更简单的方法来获取当前小时作为整数,或者通常, 在 Objective-C 中,我们通常还会使用 C 语言的 localtime
和 tm
来获取整数小时吗?
最佳答案
如何解释自 1970 年以来的秒数取决于您使用的日历。别无选择。幸运的是,设置起来并不困难。有关大量示例,请参阅“数据和时间编程指南”。在你的情况下:
// Assume you have a 'date'
NSCalendar *gregorianCal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComps = [gregorianCal components: (NSHourCalendarUnit | NSMinuteCalendarUnit)
fromDate: date];
// Then use it
[dateComps minute];
[dateComps hour];
所以它真的没有那么复杂。
另请注意,您可以创建一个“类类别”来将其封装为:
@interface NSDate (MyGregorianDateComponents)
- (NSInteger) getGregorianHour;
- (NSInteger) getGregorianMinute;
@end
关于objective-c - 在 Objective-C 中,要以整数形式获取当前的小时和分钟,我们需要使用 NSDateComponents 和 NSCalendar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10861433/