【问题标题】:unable to fetch NSDate from NSString无法从 NSString 获取 NSDate
【发布时间】:2011-06-07 05:51:39
【问题描述】:

我可以使用以下代码获取表示 PST 中当前日期和时间的 NSString。

//get current date and time
    NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"America/Los_Angeles"];    
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"MM/dd/yy HH:mm:ss zzz"];
    [dateFormatter setTimeZone:timeZone];
    NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
    [dateFormatter setLocale:enUSPOSIXLocale];
    [enUSPOSIXLocale release];
    NSDate *date = [NSDate date];
    NSString *currentDateStr = [dateFormatter stringFromDate:date];
    NSLog(@"currentDateStr %@",currentDateStr);
    [dateFormatter release];

编辑:

但是下面从 NSString 获取 NSDate 的代码不能满足我的目的。

//get date from string
    NSDateFormatter* formatter2 = [[NSDateFormatter alloc] init];
    [formatter2 setDateFormat:@"MM/dd/yy HH:mm:ss"];
    NSDate *dt = [[NSDate alloc]init];
    dt = [formatter2 dateFromString:currentDateStr];
    NSLog(@"dt %@",dt);

“dt”似乎为空。

谁能帮我解决这个从 NSString 获取 NSDate 的问题。 提前谢谢。

【问题讨论】:

    标签: iphone objective-c nsstring nsdate


    【解决方案1】:

    NSDateFormatter 也有dateFromString: 功能。

    编辑:

    //get date from string.
    NSDateFormatter* formatter2 = [[NSDateFormatter alloc] init];
    
    [formatter2 setDateFormat:@"MM/dd/yy HH:mm:ss zzz"];
    
    NSDate *dt = [formatter2 dateFromString:currentDateStr];
    NSLog(@"dt %@",dt);
    

    【讨论】:

    • 我不确定您的 setDateFormat 中的“zzz”是什么。我删除了它并得到了一些输出。
    【解决方案2】:

    利用

    [dateFormatter dateFromString:urString];
    

    在您的情况下,urStringcurrentDateStr

    【讨论】:

      【解决方案3】:

      使用

       - (NSString *)datePickerValueChangedd:(UIDatePicker*) datePicker{
      UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 50, 68, 68)];
      NSDateFormatter *df = [[NSDateFormatter alloc] init];
      df.dateStyle = NSDateFormatterMediumStyle;
      label.text = [NSString stringWithFormat:@"%@",[df stringFromDate:datePicker.date]];
      
      NSLog(@"I am inside the datePickerValueChanged   - - %@", label.text);
      [df release];
      globalVariable= label.text;
      return (label.text);
      }   
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-25
        相关资源
        最近更新 更多