iphone - 计算两个日期之间的差异的问题

标签 iphone objective-c ios nsdate nsdateformatter

我需要以分钟为单位计算两天之间的差异。

NSDate *now = [[NSDate alloc] init];

NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
    [outputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
    [outputFormatter setDateFormat:@"dd/MM/yyyy hh:mm:ss a"];

    NSString* dateStringFromDatabase = @"01/01/1900 11:00:00 AM";

    NSDate* dateFromString = [outputFormatter dateFromString:dateStringFromDatabase];

NSString* a = [outputFormatter stringFromDate:now];
    NSDate* b = [outputFormatter dateFromString:a];

    NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];

    unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit;

    NSDateComponents *components = [gregorian components:unitFlags fromDate:dateFromString
                                                  toDate:b options:0];

    int hours = [components hour];
    int minutes = [components minute];

    self.lblResult.text = [NSString stringWithFormat:@"%i:%i", hours, minutes];

但是我有以下问题: 对于当前时间,我得到:

2012-10-21 07:37:09 +0000 // wrong it's two hours late

当我尝试将 @"01/01/1900 11:00:00 AM" 转换为 NSDate 时,我得到了

1900-01-01 10:00:00 +0000 // also two hours late

最佳答案

试试这个......................

如果字符串中有日期,则使用 @"dd/MM/yyyy hh:mm:ss a"

将其转换为日期
NSDate *startDate = ...;
NSDate *endDate = ...;

现在日期比较

// Date Comparision
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];

unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit;

NSDateComponents *components = [gregorian components:unitFlags fromDate:LastDate
                                              toDate:CuurentDate options:0];

获取两个日期之间的差异

int months = [components month];
int days = [components day];
int hours = [components hour];
int minutes = [components minute];

关于iphone - 计算两个日期之间的差异的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12974608/

相关文章:

iphone - 新的IOS苹果 map

iphone - 在 iPhone 应用程序中以 mp3 格式录制音频

ios - 配置延迟 afnetwork 存储图像

iphone - 屏幕突然变黑

iphone - 获取当前时间

ios - 为什么 XMPP 函数什么都不返回?

objective-c - 获取向量中的所有点(两点之间)

objective-c - 在 ctrl-click/右键单击 NSTableView 的标题上显示上下文菜单

ios - 如何使用 Swift 更新 CoreData 数据

iphone - iOS开发者有没有 'themes'?