小编典典

如何从 NSDate 获取小时和分钟?

all

在我的应用程序中,我需要分别获取小时和分钟:

NSString *currentHour=[string1 substringWithRange: NSMakeRange(0,2)];
        int currentHourInNumber=[currentHour intValue];

考虑string1包含11:59:13 AM来自日期选择器的内容。

在这里,如果我使用上面的代码,如果它大于 9,则可以获取小时。否则我需要更改NSMakeRange(0,1)以获取 1 到 9 之间的小时。

有什么方法可以获取小时、分钟等?

在此先感谢,请提供我的示例代码。


阅读 71

收藏
2022-04-15

共1个答案

小编典典

使用NSDateFormatter转换string1NSDate,然后获取所需的NSDateComponents

Obj-C:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"<your date format goes here"];
NSDate *date = [dateFormatter dateFromString:string1];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:date];
NSInteger hour = [components hour];
NSInteger minute = [components minute];

Swift 1 and 2:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "Your date Format"
let date = dateFormatter.dateFromString(string1)
let calendar = NSCalendar.currentCalendar()
let comp = calendar.components([.Hour, .Minute], fromDate: date)
let hour = comp.hour
let minute = comp.minute

Swift 3:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "Your date Format"
let date = dateFormatter.date(from: string1)
let calendar = Calendar.current
let comp = calendar.dateComponents([.hour, .minute], from: date)
let hour = comp.hour
let minute = comp.minute

有关日期格式的更多信息,请参见官方 unicode 网站

2022-04-15