NSDateFormatter使用dateFromString返回nil

时间:2015-01-06 12:16:19

标签: ios objective-c iphone nsdate nsdateformatter

我使用以下代码使用NSDateFormatter将yyyy-MM-dd更改为M-dd-yyyy,但NSLog返回的值为nil。请帮忙。提前谢谢。

NSString *trimmedDOB=@"1992-11-15";
NSDateFormatter *format = [[NSDateFormatter alloc] init];

[format setDateFormat:@"MM-dd-yyyy"];
NSDate *DateOfBirth=[format dateFromString:trimmedDOB];

NSLog(@"DATE IS %@",DateOfBirth);

4 个答案:

答案 0 :(得分:1)

NSString *trimmedDOB=@"1992-11-15";
NSDateFormatter *format = [[NSDateFormatter alloc] init];

//Set your input format
[format setDateFormat:@"yyyy-MM-dd"];

//Parse date from input format
NSDate *dateOfBirth = [format dateFromString:trimmedDOB];

//Set your output format
[format setDateFormat:@"MM-dd-yyyy"];

//Output date in output format
NSLog(@"DATE IS %@",[format stringFromDate:dateOfBirth]);

答案 1 :(得分:0)

更改您的代码,如下所示:

NSString *trimmedDOB=@"1992-11-15";
NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"yyyy-MM-dd"];
NSDate *DateOfBirth=[inFormat dateFromString:trimmedDOB];
NSDateFormatter *outFormat = [[NSDateFormatter alloc] init];
[outFormat setDateFormat:@"MM-dd-yyyy"];
NSLog(@"DATE IS %@", [outFormat stringFromDate:DateOfBirth]);

答案 2 :(得分:0)

NSString *trimmedDOB=@"1992-11-15";
NSDateFormatter *dateformatterIn = [[NSDateFormatter alloc] init];
[dateformatterIn setDateFormat:@"yyyy-MM-dd"];
NSDate *DateOfBirth=[dateformatterIn dateFromString:trimmedDOB];
NSDateFormatter *dateformatterOut = [[NSDateFormatter alloc] init];
[dateformatterOut setDateFormat:@"MM-dd-yyyy"];

答案 3 :(得分:0)

每种日期格式对应一种日期格式。 由于您有2种日期格式(您要转换的日期字符串和要转换的日期字符串),因此需要两种日期格式化程序。

所以要从一个日期字符串转换为另一个日期字符串:

  1. 从'创建'日期格式化程序(格式:yyyy-MM-dd)
  2. 转换您的来源'日期字符串'进入' NSDate对象'
  3. 创建'到'日期格式化程序(格式:MM-dd-yyyy)
  4. 转换' NSDate对象'您在第2步中创建了最终的日期字符串'