【问题标题】:Date format not working日期格式不起作用
【发布时间】:2014-01-03 07:49:49
【问题描述】:

我在字符串 January-01-2014 中有日期。我想将此日期设置为我的日期选择器。我这样做是为了设置该日期,但出现如下错误:

Assertion failure in -[_UIDatePickerView _setDate:animated:forced:], /SourceCache/UIKit_Sim/UIKit-2903.2/_UIDatePickerView.m:313
2014-01-03 13:17:22.095 GratZeez[1469:a0b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: date'

我的代码是:

df = [[NSDateFormatter alloc] init];

df.dateStyle=NSDateFormatterMediumStyle;
datePicker.date=[df dateFromString:[tempArray objectAtIndex:2]];

【问题讨论】:

  • 有根据的猜测:您的字符串格式错误,这意味着 dateformatter 无法创建 NSDate。然后 datePicker 抱怨因为你分配了 nil。将字符串和日期放入变量中,以便您检查它们。
  • 你在 NSLog(@"%@", [tempArray objectAtIndex:2]); ?
  • 日期:2014 年 1 月 1 日
  • 这不是NSDateFormatterMediumStyle 格式的日期。做NSLog(@"%@", [df stringFromDate:[NSDate date]]) 看看这样一个格式化的字符串应该是什么样子。您必须明确指定 dateFormat。
  • 你的日期选择器日期和你的日期格式不同检查

标签: iphone nsdate nsdateformatter uidatepicker


【解决方案1】:

尝试以下代码,您的应用不会崩溃。

df = [[NSDateFormatter alloc] init];
df.dateStyle=NSDateFormatterMediumStyle;
[df setDateFormat:@"MMMM-dd-yyyy"];
datePicker.date=[df dateFromString:[tempArray objectAtIndex:2]];

【讨论】:

  • 以及如何将 January-01-1980 日期转换为字符串 01-01-1980
  • [df setDateFormat:@"MM-dd-yyyy"]; NSString *str_date=[df stringFromDate:date_Picker.date];
  • sorry maul...我问你错了....实际上如何将 January-01-1930 字符串转换为 01-01-1980...我尝试了很多格式,但我不明白如何这种格式有效。
  • 您必须先将其转换为日期,然后从中获取一个字符串。
  • 但这给了我空日期
【解决方案2】:

如果您的时区也有任何变化,请检查并更改日期格式

 NSDateFormatter *formatDate = [[NSDateFormatter alloc] init];  
[formatDate setDateFormat:@"dd-MM-yyyy  HH:mm:ss"];
NSTimeZone *zoneTime=[NSTimeZone defaultTimeZone];
[formate setTimeZone:zoneTime];
NSDate *date = [formate dateFromString:yourDateArray];  
NSLog(@"Output date :%@",date);

[yourDatePicker setDate:date];

【讨论】:

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