获取NSDate的未来时间

时间:2013-03-23 06:59:10

标签: objective-c datetime nscalendar

我有一个日期选择器。从中选择一个时间后,我想得到下一个30分钟和1个小时的日期和时间。

我将如何编写一个方法来获取日期和时间,然后在该日期时间的30分钟和1小时内返回两个NSDate。

示例:我从日期选择器下午1:30选择了时间,然后我想在下一个30分钟的时间和1小时的时间内获取时间设置。

任何人都可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [NSDateComponents new];
    components.minute = 30;
    components.hour = 1;
    NSDate *date = [calendar dateByAddingComponents:components toDate:< your date > options:0];

答案 1 :(得分:1)

您可以使用NSDate的dateByAddingTimeInterval方法。

示例:

NSDate *NextDateOneHour = [oldDate dateByAddingTimeInterval:3600];    //3600 second equivalent to 60 mins
NSDate *NextDateHalfAnHour = [oldDate dateByAddingTimeInterval:1800]; //1800 second equivalent to 30 mins

答案 2 :(得分:0)

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setHour:1];

NSDate *afterHour = [gregorian dateByAddingComponents:comps toDate:[NSDate date]  options:0];

[comps setMinute:30];

NSDate *afterHalfHour = [gregorian dateByAddingComponents:comps toDate:[NSDate date]  options:0];