NSDateFormatter returning nil with dateFromString



我使用以下代码使用 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);
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]);

像下面这样更改代码:

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]);
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"];

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

因此,要从一个日期字符串转换为另一个日期字符串:

  1. 创建"开始"日期格式化程序(格式:yyyy-MM-dd)
  2. 将源"日期字符串"转换为"NSDate 对象"
  3. 创建"收件人"日期格式化程序(格式:MM-dd-yyyy)
  4. 将您在步骤 2 中创建的"NSDate 对象"转换为最终的"日期字符串"

最新更新