如何以编程方式在nsdate中设置小时分钟?

时间:2010-06-04 12:30:39

标签: objective-c iphone nsdate hour minute

我在一个标签中有2:01:20 PM格式;经过一些计算,我需要更改该标签的小时和/或分钟。

也就是说,是否可以通过将其转换为NSDate对象并像下午3:20:30那样修改小时和分钟来更改该标签值?

有没有针对此的setter方法?

2 个答案:

答案 0 :(得分:27)

第一个问题的回答“如何以编程方式设置nsdate中的小时分钟?” 如下:

    NSDate* result;
    NSDateComponents *comps = [[NSDateComponents alloc] init];
    [comps setMinute:0];
    [comps setHour:0];
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    result = [gregorian dateFromComponents:comps];
    [comps release];

答案 1 :(得分:1)

如果您需要及时计算特定的实例,例如2010年10月23日下午3:20:30,然后您想使用NSCalendar,它可以让您分解日期并进行日期相关的计算。

警告的话。日期和时间计算非常复杂和详细。期望花几个小时学习API。