Iphone 如何计算午夜时间间隔?

Iphone 如何计算午夜时间间隔?,iphone,Iphone,在iphone开发中如何计算午夜时间间隔 我正在使用股票市场应用程序,我需要计算市场关闭后的时间间隔 假设股票市场在下午6:30收盘,然后我需要时间间隔到12:00,是的,你真的应该提供更多关于你输入数据的信息。 因为如果您有两个包含完整日期和时间信息的NSDate值,您只需要timeIntervalSinceDate: NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter

在iphone开发中如何计算午夜时间间隔

我正在使用股票市场应用程序,我需要计算市场关闭后的时间间隔


假设股票市场在下午6:30收盘,然后我需要时间间隔到12:00,是的,你真的应该提供更多关于你输入数据的信息。 因为如果您有两个包含完整日期和时间信息的NSDate值,您只需要timeIntervalSinceDate

    NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MM.dd.yyyy hh:mm a"];    
    NSDate * date1 = [dateFormatter dateFromString:@"01.11.2011 06:30 PM"];
    NSDate * date2 = [dateFormatter dateFromString:@"01.12.2011 12:00 PM"];
    NSTimeInterval interval = [date2 timeIntervalSinceDate:date1];
你将得到63000秒=17.5小时

但看起来你有时间没有日期信息。在这种情况下,您将得到错误的负值:

[dateFormatter setDateFormat:@"hh:mm a"];
NSDate * date1 = [dateFormatter dateFromString:@"06:30 PM"];
NSDate * date2 = [dateFormatter dateFromString:@"12:00 PM"];
NSTimeInterval interval = [date2 timeIntervalSinceDate:date1];
结果是-23400秒=-6.5小时

因此,在这种情况下,您应该更正结果,因为您知道第二个日期是在午夜之后:

NSTimeInterval rightInterval = 24*3600 + [date2 timeIntervalSinceDate:date1];

你的问题没有多大意义-请展开一点并给出一些上下文。提供一个完整的示例:输入和所需的输出。