【问题标题】:Comparing time and date in objective C比较目标 C 中的时间和日期
【发布时间】:2011-09-14 16:01:21
【问题描述】:

例如,我如何在目标 C 中进行比较,以查看某个时间和日期时间段是否与另一个已经在 plist 中的时间段重叠?

这最常用于预订/预订应用程序,以查看该特定时间段是否已被占用等。

【问题讨论】:

    标签: objective-c xcode date time


    【解决方案1】:

    试试这个比较..

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
                [dateFormat setDateFormat:@"MM/dd/yyyy hh:mm:ss aa"];
    
    
    NSDate *dateOne=[dateFormat dateFromString:@"01/09/2011 11:12:10 AM" ];
            NSDate *dateTwo = [NSDate date];
    
            switch ([dateOne compare:dateTwo]){
                case NSOrderedAscending:
                    //NSLog(@"NSOrderedAscending");
                    break;
                case NSOrderedSame:
                    //NSLog(@"NSOrderedSame");
                 {
    break;
                case NSOrderedDescending:
                    //NSLog(@"NSOrderedDescending");
                    break;
            }
    
    [dateFormat release];
    

    【讨论】:

      【解决方案2】:

      假设您将日期存储为 NSDate,只需使用以下代码:

       [myDate timeIntervalSinceNow];
      

      返回一个 NSTimeInterval,它只是一个浮点数,以秒为单位表示时间间隔。如果为负数,则表示您正在比较的时间是以前的。

      如果您的日期作为NSString 存储在plist 中,您必须先将其转换为NSDate,为此使用NSDateFormatter

      NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
      [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //Change this to your date format
      NSDate * date = [formatter dateFromString:yourString];
      [formatter release];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-20
        • 2015-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多